C语言 | 输出斐波那契前30列

举报
C语言入门到精通 发表于 2021/02/06 19:13:52 2021/02/06
【摘要】 C语言源码案例
例15:求Fibonacci数列的前40个数。这个数列有以下特点:第1,2两个数为1,1,。从第三个数开始,该数是其前两个数之和。(斐波那契不死神兔)

解题思路:从前两个月的兔子数可以推出第3个月的兔子数。设第1个月的兔子数f1=1,第2个月的兔子数为f2=1,第3个月的兔子数f3=f1+f2=2。

源代码演示:

#include<stdio.h>//头文件
int main()//主函数,程序的入口
{
  int i,f1,f2,f3,row; //定义变量
    f1=1,f2=1; //变量初始化
    printf("输入需要输出的行数:");//提示语句
    scanf("%d",&row); //键盘输入行数
    printf("%d\n%d\n",f1,f2); //先输出第一行和第二行
    for(i=1;i<row-1;i++) ///循环控制后row-2行
    {
      f3=f2+f1; //第3行的值是前面两行之和
      printf("%d\n",f3);
      f1=f2; //变量赋值
      f2=f3;
    }
}

编译运行结果如下:

输入需要输出的行数:30
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040

--------------------------------
Process exited after 2.806 seconds with return value 29
请按任意键继续. . .

读者应该注意此程序只是简单的输出前30行,数字还是比较小的,如果想要更多的输出,要用long int(长整型)定义,要不然回超出int的范围,出现下面所示:

输入需要输出的行数:600
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
………………
-1831132203
1787838701
-43293502
1744545199
1701251697
-849170400

--------------------------------
Process exited after 2.706 seconds with return value 599
请按任意键继续. . .
C语言开发工具

更多案例可以go公众号:C语言入门到精通

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。