C/C++の宿題を片付け ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
63:デフォルトの名無しさん 08/02/08 14:19:27 >>54 // 課題3-1 #include <stdio.h> int main(void){ int i,a[41] = {0, 1,}; printf("%d:%d\n",0,a[0]); printf("%d:%d\n",1,a[1]); for(i=2;i<=40;i++){ a[i] = a[i-1] + a[i-2]; printf("%d:%d\n",i,a[i]); } return 0; } // 課題3-2 修正版 #include<stdio.h> int fib(int *a, int n){ if(n == 0) return 0; else if (n==1) return 1; else if (a[n]!=-1) return a[n]; else return fib(a, n-1)+fib(a, n-2); } int main(){ int i, a[41] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,}; for(i=0;i<=40;i++){ a[i] = fib(a, i); printf("%d:%d\n",i,a[i]); } return 0; } 64:デフォルトの名無しさん 08/02/08 14:51:08 >>54 // 課題3-2を、関数内で完結させるように修正してみた。 #include <stdio.h> static int fib(int n) { static int a[] = { 0, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; if (n >= sizeof(a) / sizeof(* a) || a[n] == -1) { a[n] = fib(n - 1) + fib(n - 2); } return a[n]; } int main() { for (int n = 0; n <= 40; ++n) { printf("%d:%d\n", n, fib(n)); } return 0; }
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4992日前に更新/299 KB
担当:undef