周云成 发表于 2021-12-29 23:05:12

带你学c带你飞拾遗3

这是一个有趣的古典数学问题:如果说兔子在出生两个月后,就有繁殖能力,在拥有繁殖能力之后,这对兔子每个月能生出一对小兔子来。假设所有兔子都不会死去,能够一直干下去,那么两年之后可以繁殖多少对兔子呢?
#include<stdio.h>
int main()
{
        int i,j,n,a=1,b=1,c=2;
        for(n=2;n<=8;n++)
        {
                a=a+c;
                b=b+a;
                c=b+c;
        }
        printf("%d",c);
        return 0;
}
我的代码,为什么最后结果不对呢,我推算到第九个月还是符合的

傻眼貓咪 发表于 2021-12-29 23:37:06

#include <stdio.h>

int main()
{
    int a = 0, b = 1, t;
    for(int i = 0; i < 24; i++){
      t = a;
      a = b;
      b = t + a;
      printf("第%2d月:%d\n", i+1, a);
    }
    return 0;
}第 1月:1
第 2月:1
第 3月:2
第 4月:3
第 5月:5
第 6月:8
第 7月:13
第 8月:21
第 9月:34
第10月:55
第11月:89
第12月:144
第13月:233
第14月:377
第15月:610
第16月:987
第17月:1597
第18月:2584
第19月:4181
第20月:6765
第21月:10946
第22月:17711
第23月:28657
第24月:46368

周云成 发表于 2021-12-30 20:35:17

傻眼貓咪 发表于 2021-12-29 23:37


原来第八月就想错了。。

周云成 发表于 2021-12-30 20:38:23

傻眼貓咪 发表于 2021-12-29 23:37


实际上第三个月月初的时候第二对小兔子就在成长了,不会等到下个月再长大

tomok 发表于 2021-12-31 14:45:20

学习了


页: [1]
查看完整版本: 带你学c带你飞拾遗3