打卡 c语言趣味编程 兔子产子问题

qmz-znv2 / 2023-05-11 / 原文

问题描述:
  有一对兔子,从出生后的第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 }