来自网络,联系侵删
105 字
1 分钟
凤凰鱼
题目描述
每年年初,每条成年凤凰鱼都会生下一只新的小鱼。新出生的小鱼在第3年开始成为成年鱼,并开始繁殖。凤凰鱼的寿命为 7 年,即第 7 年年底时会自然死亡。请编写一个程序,计算在给定的年份后,巢湖里凤凰鱼的总数量。
代码
#include <stdio.h>
int main(){ int n, m; scanf("%d", &n); scanf("%d", &m);
// 初始化年龄数组,索引0-6表示0-6岁的鱼 // age[i]表示i岁鱼的数量(i从0到6) long long age[7] = { 0 };
// 第1年年初:所有初始鱼都是0岁小鱼 age[0] = m;
// 模拟从第1年到第n-1年的变化(因为要计算第n年年初的数量) for (int year = 1; year < n; year++) { // 临时存储新生小鱼数量 long long new_fish = 0;
// 每年年初:3岁及以上的成年鱼繁殖(年龄2岁及以上的鱼在年初繁殖) // 注意:鱼在2岁末到3岁初时成为成年鱼,所以2岁的鱼就能繁殖 for (int i = 2; i <= 6; i++) { new_fish += age[i]; }
// 年龄增长:所有鱼年龄增加1岁 // 注意:7岁的鱼会死亡,所以不保留 for (int i = 5; i >= 0; i--) { age[i + 1] = age[i]; }
// 设置新生小鱼数量(0岁鱼) age[0] = new_fish; }
// 计算第n年年初的总鱼数 long long total = 0; for (int i = 0; i <= 6; i++) { total += age[i]; }
printf("%lld\n", total);
return 0;} 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 智能推荐



























