打卡 c语言趣味编程 兔子产子问题
问题描述:
有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每
个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少?
思路:
需要定义两个变量,一个表示上一个月的兔子总数,另一个表示当前月份的兔子总数。从第一个月开始,将上一个月的兔子总数初始化为1(因为初始只有一对兔子),当前月份的兔子总数也初始化为1。然后使用一个循环来模拟每个月的生长和繁殖过程,循环从第二个月开始,一直到第30个月。在每个月中计算当前月份的兔子总数,它等于上一个月的兔子总数加上小兔子的数量(上一个月的兔子总数)。然后更新上一个月的兔子总数和当前月份的兔子总数,将当前月份的兔子总数赋值给上一个月的兔子总数,同时将当前月份的兔子总数赋值给当前月份的兔子总数。最后,循环结束输出第30个月的兔子总数。
流程图:

代码实现:
1 #include <iostream> 2 3 int main() { 4 int pre = 1; // 上一个月的兔子总数 5 int cur = 1; // 当前月份的兔子总数 6 7 for (int month = 2; month <= 30; month++) { 8 int new = pre; 9 curr = pre + new; 10 pre = cur; 11 } 12 13 std::cout << "第30个月的兔子总数为:" << cur << std::endl; 14 15 return 0; 16 }