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;
}