菲波那切数列为:0 1 1 2 3 5 8 13 21 34...
规律:从第三个数字起后面的每一个数字都是前两个数字的和。
非递归算法:
1 #include<stdio.h> 2 int main() 3 { 4 //数列:0 1 1 2 3 5 8 13 21 34 5 //序号:1 2 3 4 5 6 7 8 9 10 6 int a = 0; 7 int b = 1; 8 int c = a + b; 9 int num = 0;//num为所求的第几项数列。 10 scanf("%d", &num); 11 if (num > 1) 12 { 13 for (int i = 0;i < num - 3;i++) { 14 a = b; 15 b = c; 16 c = a + b; 17 } 18 printf("%d", c); 19 20 } 21 else 22 { 23 printf("%d",a); 24 } 25 26 renturn 0; 27 }
递归算法:
1 #include<stdio.h> 2 //0 1 1 2 3 5 8 13 21 34 3 //1 2 3 4 5 6 7 8 9 10 4 int Num(int n) 5 { 6 if (n == 1) 7 { 8 return 0; 9 } 10 if (n == 2) 11 { 12 return 1; 13 } 14 else 15 { 16 return Num(n - 1) + Num(n - 2); 17 } 18 } 19 20 int main() 21 { 22 int n; 23 scanf("%d",&n);//输入想要求得的第几个斐波那契数列 24 int num = Num(n); 25 printf("%d",num); 26 27 return 0; 28 }
原文地址:https://www.cnblogs.com/cuckoo-/p/10317627.html
时间: 2024-11-11 03:09:44