PTA 7-242 母牛问题
分数 10
作者 ZJUTOJ
单位 绍兴文理学院
设想一头小母牛从第4个年头开始每年生育一头小母牛。现有一头小母牛,按照此设想,第n年时有多少头母牛?
输入格式:
测试数据有多组,处理到文件尾。每组测试输入一个正整数n(1≤n≤40)。
输出格式:
对于每组测试,输出第n年时的母牛总数。
输入样例:
5
8
15
输出样例:
3
9
129
出处:
ZJUTOJ 1182
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <stdio.h>
int sum(int n){
if(n == 0)
return 0;
switch(n){
case 1:
case 2:
case 3:
return 1;
default:
return sum(n-1) + sum(n-3);
//sum(n-1) + sum(n-3) 相当于前一年牛的总数sum(n-1)加上已经具有生育能力
}
}
int main(){
int year;
while(scanf("%d", &year) != EOF) //处理到文件尾
printf("%d\n", sum(year));
return 0;
}
解题思路:
第n年的母牛的来源分别来自于前一年剩下的和前3年的母牛(有生育能力的母牛,最早的母牛也算在里面)
归属知识点:
递归
该问题描述了一种母牛繁殖模型,其中一头小母牛从第4年开始每年生育一头小母牛。给定年份n,程序需计算出第n年时的母牛总数。提供的C语言代码使用递归方法,考虑了前一年和前三年的母牛数量来得出答案。

被折叠的 条评论
为什么被折叠?



