有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
由图可知: 兔子数量可分成两种情况:
1.前两个月兔子数量为 1 对
2.其他月 兔子数量为上月数量+上上月数量
#include#includeint fun(int8_t i);
int main(void)
{int8_t i = 0;
int32_t amount = 0;
for (i = 1; i<= 40; i++)
{amount = fun(i);
printf("%12d", amount);
if (i % 4 == 0)
{ printf("\n");
}
}
return 0;
}
int fun(int8_t i)
{if (i == 1 || i == 2)
{return 1;
}
else
{return fun(i - 2) + fun(i - 1);
}
}
结果为:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧