标题:用for循环解决费波纳契数列
只看楼主
小猴子不服输
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2023-1-7
结帖率:100%
 问题点数:0 回复次数:2 
用for循环解决费波纳契数列
要求要用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")   
    }
}
搜索更多相关主题的帖子: 数列 for printf int 循环 
2023-01-07 19:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
//这里题中说求前20项 为什么i<=10
因为它一次循环算了两个数据

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

//这里为什么要让i除以5的余数等于零
它想五次循环一换行,也就是10个数据一行。
2023-01-07 21:10
小猴子不服输
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2023-1-7
得分:0 
回复 2楼 rjsp
明白了 谢谢谢谢
2023-01-08 18:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511067-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052371 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved