码迷,mamicode.com
首页 > 其他好文 > 详细

非递归和递归分别实现求第n个斐波那契数。

时间:2019-01-25 01:12:20      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:个数   bsp   算法   规律   递归算法   std   amp   div   code   

菲波那切数列为: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 }

 

非递归和递归分别实现求第n个斐波那契数。

标签:个数   bsp   算法   规律   递归算法   std   amp   div   code   

原文地址:https://www.cnblogs.com/cuckoo-/p/10317627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!