标签:include 循环 res item printf code ret rdo get
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(3)=2,F(n)=F(n-1)+F(n-2)(n>=4,n∈N*).
C语言可以用以下方法实现
一 递归实现
1 #include <stdio.h> 2 3 int fun(int i) //递归函数 4 { 5 int res = 0; 6 if(i>2) //从第三位开始 7 { 8 res = fun(i-1) + fun(i-2); 9 } 10 else //第一和第二 11 { 12 res = 1; 13 } 14 15 return res; 16 } 17 18 void main() 19 { 20 int n = 20; 21 for(int i=1;i<=n;i++) // 为了打印,循环调用 22 { 23 int res = fun(i);//i表示第几位 24 printf("%d\t",res); 25 } 26 printf("\n"); 27 }
运行结果
he@he-PC:~/Desktop$ ./a.out 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 he@he-PC:~/Desktop$ ^C
二 循环实现
1 void main() 2 { 3 int a[20] = {0},i=0; 4 5 a[0] = 1; 6 a[1] = 1; 7 for( i=0;i<= sizeof(a)/sizeof(int);i++) 8 { 9 if(i<2) 10 { 11 a[i] =1; 12 } 13 else 14 { 15 a[i] = a[i-1] + a[i-2]; 16 17 } 18 printf("%d\t",a[i]); 19 } 20 21 printf("\n"); 22 23 }
运行结果
he@he-PC:~/Desktop$ ./a.out 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 he@he-PC:~/Desktop$
三 循环实现
1 #include <stdio.h> 2 3 4 void main() 5 { 6 int i = 0; 7 int tmp = 1, tmp2 = 0, sum = 0; 8 for(i=0;i<=20;i++) 9 { 10 sum = tmp + tmp2; 11 tmp = tmp2; 12 tmp2 = sum; 13 printf("%d\t",sum); 14 } 15 printf("\n"); 16 }
运行结果
he@he-PC:~/Desktop$ ./a.out 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 he@he-PC:~/Desktop$
四 循环实现
1 #include <stdio.h> 2 3 void main() 4 { 5 int a = 0, n = 20 ,b = 1; 6 7 for(int i=2;i<=n;i++) 8 { 9 b = a + b; 10 a = b-a; 11 printf("%d\t",b); 12 } 13 printf("\n"); 14 }
运行结果
he@he-PC:~/Desktop$ ./a.out 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 he@he-PC:~/Desktop$
Linux环境C语言斐波拉切数列(1,1,2,3,5,8,13,.........)实现
标签:include 循环 res item printf code ret rdo get
原文地址:https://www.cnblogs.com/mingyue605/p/10099025.html