weixin_36825926
weixin_36825926
采纳率66.7%
2016-12-13 05:39 阅读 839
已采纳

初学者不会分析这段代码,求帮助

题目是这样的,课堂上老师已经带我们打出,但我不会分析这段代码图片说明
代码是这样的,帮忙分析下
nt fibo(int n);
int main()
{
int i=0,fi,j=0;
for(i=0;i<30;i++)
{
fi=fibo(i+1);
printf("%d\t",fi);
j++;
if(j%5==0)
printf("\n");

}
return 0;

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    sun1021873926 夕阳雨晴 2016-12-13 07:13

    int fibo(int n); //声明fibo函数
    int main() //实现主函数
    {
    int i=0,fi,j=0; //定义循环变量
    for(i=0;i<30;i++) //循环30次,获取fibo数的前30项
    {
    fi=fibo(i+1); //获取每项的fibo数
    printf("%d\t",fi); //输出获取的fibo数
    j++; //行控制个数叠加
    if(j%5==0) //当此行输入5项fibo时
    printf("\n"); //进行换行
    }
    return 0; //执行结束
    }
    int fibo(int n) //fibo函数定义
    {
    int s=0; //定义变量
    if(n==1||n==2) //当当前fibo项为第一项或第二项时
    s=1; //返回1
    else
    s=fibo(n-1)+fibo(n-2); //当当前fibo项为非第一项或第二项时,递归获取当前项
    return s; //返回当前项
    }

    点赞 1 评论 复制链接分享
  • Tiger_Zhao Tiger_Zhao 2016-12-13 05:48

    如果什么都不懂,请先上补习班或请家教。
    具体哪个语句有问题了再来提问。

    点赞 评论 复制链接分享
  • qq_28705017 qq_28705017 2016-12-13 05:59

    这部很简单么。fibo就是题目中的地递归方法,1或2就返回1,否则就找前两个加起来,直到递归结束。
    main方法就更简单了,只是一个循环打印前三十项,每五项在一行。

    点赞 评论 复制链接分享
  • feng1790291543 鱼弦 2016-12-13 06:36

    把代码敲个几十遍,就会了

    点赞 评论 复制链接分享

相关推荐