700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 斐波那契数列(入门c语言)

斐波那契数列(入门c语言)

时间:2024-04-25 06:14:35

相关推荐

斐波那契数列(入门c语言)

斐波那契数列又称黄金分割数列,是这样的:1、1、2、3、5、8、13……就是从第三项开始,每一项等于前两项之和。

我们想要求得第n个斐波那契数列是什么时,可以这样敲

一、第一种方法比较直接

#include <stdio.h>int main(){int n,a,b,sum;a=1;b=1;scanf("%d",&n);if(n==1 || n==2){printf("1/n");}else{for(int i=3;i<=n;i++){sum=a+b;a=b;b=sum;}}printf("第%d个斐波那契数列是%d\n",n,sum);return 0;}

整体是这样。

再从一部分开始分析

#include <stdio.h>int main(){int n,a,b,sum;a=1;b=1;scanf("%d",&n);

1、int n;与scanf("%d",&n);加上后续输入,指出要求的n

2、a、b、sum先定义方便后续使用

if(n==1 || n==2){printf("1/n");}

3、根据斐波那契数列性质,第一项和第二项没有规律可言,所以先判断n是否等于1或2

else{for(int i=3;i<=n;i++){sum=a+b;a=b;b=sum;}}

4、对除了1和2的情况外进行分析运用for循环对每一项进行叠加计算出第n项

printf("第%d个斐波那契数列是%d\n",n,sum);return 0;

5、最后表达,并加以文字美化结果

二、第二种方法使用递归

#include <stdio.h>int fi(int n){if(n==1 || n==2) return 1;else return fi(n-2)+fi(n-1);}int main(){int n;scanf("%d",&n);printf("%d",fi(n));return 0;}

整体是这样的。

从一部分慢慢分析

int fi(int n){if(n==1 || n==2) return 1;else return fi(n-2)+fi(n-1);}

1、这一段是最主要的算法区域,因为数列的性质先判断n是否为1和2,并提供返回值。

2、再对不是1和2的情况进行处理,这里引用f(n),根据斐波那契数列的性质,每一项等于前两项的和,也就是f(n)=f(n-1)+f(n-2),最后会退到f(1)和f(2),这两个数已经提前定义(也就是当n等于1和2的时候),直接进入计算。

int main(){int n;scanf("%d",&n);printf("%d",fi(n));return 0;}

3、最后就是定义n再加上后续输出,指定n。

4、如果想要美观也可以向方法一一样输入一个printf("第%d个斐波那契数列是%d\n",n,sum);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。