主题:递增牛群问题!
圣域无敌
[专家分:60] 发布于 2007-02-11 10:51:00
f=f1+f3;
f3=f2;
f2=f1;
f1=f;
这段代码想不明白,既然f=f1+f3
那么还要f2=f1干什么?f的公式里的都不含f2!是否错了?我在这论坛的老贴里找到的!
回复列表 (共17个回复)
11 楼
圣域无敌 [专家分:60] 发布于 2007-02-11 12:16:00
噢,原来是我粗心看少了f3=f2,呵呵!谢谢拉
12 楼
圣域无敌 [专家分:60] 发布于 2007-02-11 12:26:00
i=1;
while (i<=year)
{
if(i<4)
f=f1=f2=f3=1;
else
{
f=f1+f3;
f3=f2;
f2=f1;
f1=f;
i++;
}
printf("i=%2d n=%3d\n",i,f);
}
getch();
return 0;
}
我这样写行不?可以的话和原来的区别在哪?
13 楼
雪光风剑 [专家分:27190] 发布于 2007-02-11 12:32:00
不行
这样的话当year>4的时候进入死循环
i++应该放在if外面
14 楼
圣域无敌 [专家分:60] 发布于 2007-02-11 12:36:00
噢,又是不小心放错地方了!
i=1;
while (i<=year)
{
if(i<4)
f=f1=f2=f3=1;
else
{
f=f1+f3;
f3=f2;
f2=f1;
f1=f;
}
printf("i=%2d n=%3d\n",i,f);
i++;
}
getch();
return 0;
}
这样行了没?
15 楼
雪光风剑 [专家分:27190] 发布于 2007-02-11 13:16:00
基本上可以了
16 楼
sarrow [专家分:35660] 发布于 2007-02-11 13:31:00
找本高中数学书看看,注意看里面的“数列”部分。
大部分的程序核心都可以表示成数列。
如果学了大学数学的矩阵的话,所有程序都可以由矩阵运算来表示。
17 楼
yanyunouju [专家分:0] 发布于 2010-07-23 09:46:00
f1 f2 f3 f f
三年前 两年前 去年 今年
三年前 两年前 去年
f=f1+f3;
f1=f2;原先的两年前变成了三年前,
f2=f3;原先的去年变成了两年前
f3=f; 原先的今年变成了去年
main()
{int i,year,f,f1,f2,f3;
printf("请输入年份:");
scanf("%d",&year);
for(i=1;i<=year;i++)
{ if(i<4)
f=f1=f2=f3=1;
else
{ f=f1+f3;
f1=f2;
f2=f3;
f3=f;
}
printf("第%d年有%d头牛.\n",i,f);
}
}
我来回复