求助,这个问题不是很理解,望大佬们解答
题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....,即下个月是上两个月之和(从第三个月开始)。
#include<stdio.h>
int main()
{
int f1=1,f2=1,i;
for(i=1;i<=20;i++)
{
printf("%12d%12d",f1,f2);
if(i%2==0) printf("\n");
f1=f1+f2;
f2=f1+f2;
}
return 0;
}
我有的问题如下:
1.为啥兔子的规律是1,1,2,3,5,8,13,21....,应该是兔子的对数是1,1,2,3,5,8,13,21....吧
2.如果是这样编写的话,那是因为都除以2了吗?所以for循环里面的40个月变成20个月了?
反正有点迷,可能自己太菜了吧。
希望大佬们帮忙解答下~谢啦 一次循环应该可以定义两个数位 这不是斐波那契数列吗 是兔子的只数,默认是两只可以配对,不考虑公兔和母兔,不考虑兔子会死亡。
其实这个问题是不用去深究的,只要记住斐波那契数列的性质就好了,很好记的{:10_297:} Python初学者8号 发表于 2020-6-25 21:52
这不是斐波那契数列吗
我知道这个是斐波那契数列,但是这个题咋就跟斐波那契数列挂钩了,就不明白了,哈哈哈 liuzhengyuan 发表于 2020-6-25 21:50
一次循环应该可以定义两个数位
这么一说好像是,所以就是20了。可以我觉得输出的最后的数字应该在乘以2才是兔子总数,现在求出来的对兔子对数。 石上岸 发表于 2020-6-25 22:16
这么一说好像是,所以就是20了。可以我觉得输出的最后的数字应该在乘以2才是兔子总数,现在求出来的对兔 ...
应该是对的
有可能这个题目没有描述清楚 本帖最后由 405794672 于 2020-6-26 11:29 编辑
我也做过100例。可以明显感觉出出题人和解题人的水平
不用纠结。再说了,人家说兔子的规律,也没说是对还是只,这点也是符合情况的
for循环除以2,是因为一次变出了两个变量。循环一次就第一,第二,循环两次就第三,第四
所以嘛,40个月,只能循环20次。
至于解题人这么菜,也不能说菜,就是不严谨,容易把一当成二的主。不用纠结他,只管自己理解就好了 405794672 发表于 2020-6-26 11:27
我也做过100例。可以明显感觉出出题人和解题人的水平
不用纠结。再说了,人家说兔子的规律,也没说是对还 ...
哈哈哈哈好滴,感谢 liuzhengyuan 发表于 2020-6-26 07:47
应该是对的
有可能这个题目没有描述清楚
好的感谢啦 石上岸 发表于 2020-6-25 22:14
我知道这个是斐波那契数列,但是这个题咋就跟斐波那契数列挂钩了,就不明白了,哈哈哈
{:5_97:}
大概这就是专业吧 每循环一次就输出2个月的兔子对数,循环20次一次输出两个月,刚好40个月。
对应该就是这样
页:
[1]