mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7
105 字
1 分钟
凤凰鱼
2026-05-28

题目描述#

每年年初,每条成年凤凰鱼都会生下一只新的小鱼。新出生的小鱼在第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;
}
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

凤凰鱼
https://blog.sherry.qzz.io/posts/c/凤凰鱼/
作者
Sherry
发布于
2026-05-28
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录