HenryStark 2013-08-15 09:26 采纳率: 100%
浏览 13449
已采纳

斐波那契数列 利用循环输出前40项 (初学者)

我在查了资料之后找到以下解决方法:
#include
  int main()
  {
  long fib[41] = {0,1};
  int i;
  for (i=2;i<41;i++) fib[i] = fib[i-1]+fib[i-2];
  for (i=1;i<41;i++) printf("F%d==%d\n",i,fib[i]);
  getch();
  return 0;
  }

有些看不懂,希望可以帮我详细分析一下运算过程,或者提供相关的知识点以供研究。
谢谢。

  • 写回答

4条回答 默认 最新

  • _snail_ 2013-08-15 10:37
    关注

    首先你要知道斐波那契数列的规律也就是0、1、1、2、3、5、8、13、21、……,通过这个就可以知道从第三个元素开始,他的值等于前面两个元素的和,下面分析代码

    long fib[41] = {0,1}; 定义了一个数组,设置了0 1 坐标元素的值为 0 1

    for (i=2;i<41;i++) fib[i] = fib[i-1]+fib[i-2]; 这个循环是冲i等于2开始运算的,也就是数组的第三个元素,fib[i] = fib[i-1]+fib[i-2] 因为斐波那契数列的规律是从第三个元素开始等于前面两个相加,也就是fib[i-1],fib[i-2]这两个

    for (i=1;i<41;i++) printf("F%d==%d\n",i,fib[i]); 这里是打印,上面的代码可以看出,数组第一个和第二个元素没有参与运算,但long fib[41] = {0,1};这里已经声明了,所以第一个第二个元素固定为0、1,第三个开始就是前面两个相加。

    不知道说的详细不详细,你明白不明白。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器