C语言斐波那契数列的前N项 循环和递归斐波那契数列。斐波那契数列规律如下:1, 1, 2, 3, 5, 8, 13,21, 34,55…,从第三项开始,每一项都是前面两项的和。
- /*
- * 分别用循环和递归求斐波那契数列的前N项,定义其第0 第1项为1 比较其优劣
- */
- #include
-
- int func(int n)
- {
- #if 0 //递归方法
- if(n==0 || n==1)
- {
- return 1;
- }
- return func(n-1)+func(n-2);
- #else //循环方法
- int a,b,c,i;
- if(n==0 || n==1)
- {
- return 1;
- }
- a=1;
- b=1;
- c=a+b;
- for(i=3;i<=n;i++)
- {
- a=b;
- b=c;
- c=a+b;
- }
- return c;
- #endif //
- }
-
- int main(void)
- {
- int i,N;
-
- printf("input int N:");
- scanf("%d",&N);
-
- printf("斐波那契数列的前N项:");
- for(i=0;i<=N;i++)
- {
- printf("%d ",func(i));
- fflush(stdout);
- }
- putchar('\n');
- return 0;
- }
运行结果
- input int N:8
- 斐波那契数列的前N项:1 1 2 3 5 8 13 21 34