注册 登录
编程论坛 C++教室

用for循环解决费波纳契数列

小猴子不服输 发布于 2023-01-07 19:29, 1126 次点击
要求要用for循环来求费波纳契数列的前20项 书上给的这个代码好几处都看不明白 我都在相应的后面说出哪里看不懂了 求求大佬帮帮解释一下 想了好久了都想不明白
#include <stdio.h>
int main()
{
    int f1,f2,f3,i;
    f1=f2=1;
    for(i=1;i<=10;i++)    //这里题中说求前20项 为什么i<=10
    {
          printf("%d%d",f1,f2)
          f3=f1+f2;
          f1=f3;         
          f2=f3+f2;      //这里要让f1,f2重新赋值 但是f2赋值为什么要赋f3+f2的值
          if(i%5==0)     //这里为什么要让i除以5的余数等于零
          printf("\n")   
    }
}
2 回复
#2
rjsp2023-01-07 21:10
//这里题中说求前20项 为什么i<=10
因为它一次循环算了两个数据

//这里要让f1,f2重新赋值 但是f2赋值为什么要赋f3+f2的值
新f1 = 旧f1 + 旧f2
新f2 = 新f1 + 旧f2
它就是 …… 旧f1,旧f2,新f1,新f2,…… 这么排列的
原代码中的 f3 没有存在的必要

//这里为什么要让i除以5的余数等于零
它想五次循环一换行,也就是10个数据一行。
#3
小猴子不服输2023-01-08 18:01
回复 2楼 rjsp
明白了 谢谢谢谢
1