请问,斐波那契这个题 为什么不写成for(i=0;i<=n;i++) ?
匿名课官 核心会员 2015-11-21 20:24:42
3012 3 0

#include<stdio.h>

main()

{

int a1=0,a2=1,t,i,n=5;

for(i=0;i<=n;i++)

{

t=a2;

a2=a1+a2;

a1=t;

}

printf("%d",a1);

}


include<stdio.h>

main()

{

int a1=0,a2=1,n=5,t,i;

for(i=0;i<n;i++)

{

t=a2;

a2=a1+a2;

a1=t;

}

printf("%d\n",a1);

}


问题来自: while循环和do循环

共 3 个回答

    嘿嘿大人 一代宗师 3087天前

    因为这样for循环就会多执行一次,也就是多了i=n这一项,而i又是从0开始的,所以如果再执行到i=n的话,就会多执行一次,得出的结果也会是目标的后一位;

    F(0)=0、F(1)=1、F(2)=1、F(3)=2、F(4)=3、F(5)=5、F(6)=8、F(7)=13、F(8)=21、

    当n等于5的时候就是求第五个也就是F(5),所以需要循环五次,也就是i=0i=1,i=2,i=3,i=4,,如果加上i=n=5的话就是循环六次了,所以不能加等号的;

    匿名课官 核心会员 3087天前

    恩恩,明白了,谢谢~

    嘿嘿大人 一代宗师 3087天前

    回复 匿名课官:不用谢,加油吧,嘿嘿


您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题