top1编程
← 返回题目
题解

昆虫繁殖

1 条题解

  • 0
    @ 2026-7-28 22:45:13
    #include<bits/stdc++.h>  
    using namespace std;  
    
    // 定义全局变量 x, y, z 分别表示成虫产卵周期、每对成虫产卵对数和总月份数  
    int x, y, z;  
    // 定义两个数组 f 和 s,分别用于记录每个月的成虫对数和卵对数  
    int f[1000], s[1000];  
    
    int main() {  
        // 从标准输入读取 x, y, z 的值  
        cin >> x >> y >> z;  
    
        // 初始化前 x 个月的成虫对数为 1,对应初始条件  
        for (int i = 1; i <= x; i++) {  
            f[i] = 1;  
            s[i] = 0; // 前 x 个月没有卵  
        }  
    
        // 从第 x+1 个月开始计算  
        for (int i = x + 1; i <= z + 1; i++) {  
            // 当前月的卵对数等于 x 个月前的成虫对数乘以每对成虫产卵对数 y  
            s[i] = f[i - x] * y;  
            // 当前月的成虫对数等于上个月的成虫对数加上两个月前的卵对数(因为卵需要两个月成长为成虫)  
            f[i] = f[i - 1] + s[i - 2];  
        }  
    
        // 输出第 z+1 个月的成虫对数  
        cout << f[z + 1];  
        return 0;  
    }
    
    • 1