本帖最后由 jackz007 于 2022-9-28 22:58 编辑 #include <stdio.h>
int fib(int n)
{
return (n < 3) ? 1 : fib(n - 1) + fib(n - 2) ;
}
int main(void)
{
int d[50] , i , n ;
printf("你想知道斐波那契数列前几项 (1 <= n <= 46) : ") ;
scanf("%d" , & n) ;
for(i = 1 ; i < n + 1 ; i ++) d[i - 1] = fib(i) ;
for(i = 0 ; i < n ; i ++) {
if(i % 5) printf(" , " , d[i]) ;
if(i && ! (i % 5)) printf("\n") ;
printf("%10d" , d[i]) ;
}
printf("\n") ;
}
编译、运行实况:D:\[00.Exerciese.2022]\C>g++ -o x x.c
D:\[00.Exerciese.2022]\C>x
你想知道斐波那契数列前几项 (1 <= n <= 46) : 35
1 , 1 , 2 , 3 , 5
8 , 13 , 21 , 34 , 55
89 , 144 , 233 , 377 , 610
987 , 1597 , 2584 , 4181 , 6765
10946 , 17711 , 28657 , 46368 , 75025
121393 , 196418 , 317811 , 514229 , 832040
1346269 , 2178309 , 3524578 , 5702887 , 9227465
D:\[00.Exerciese.2022]\C>
|