第一次提交超时——
解题思路:对第一头奶牛每年生一头小母牛进行递归,递归部分为每生出一头小奶牛,其第四年之后就可每年生出一头小母牛这一过程是重复的。
注意事项:此解法效率不高,递归部分不够高度浓缩,以致超时。
参考代码:
#include<stdio.h>
int get(int n)
{
int sum=1;//初始值为一头母牛
int i;
for(i=1;i<=n;i++)//每一年
{
sum++;
get(n-4);//每年生下一头小母牛
}
return sum;
}
int main()
{
int n;
int sum;
while(1)
{
scanf("%d\n",&n);
if(n==0)
break;
sum = get(n);
printf("%d\n",sum);
}
return 0;
}
第二次提交正确——参考优质题解
解题思路:第n年的母牛数=第n-1年的母牛数+第n-3年的母牛数(已具有生育能力)
注意事项:每一头母牛生出的那一年视为第一年
参考代码:
#include<stdio.h>
int get(int n)
{
if(n<=4)
return n;
else
return get(n-1)+get(n-3);
}
int main()
{
int n;
while(1)
{
scanf("%d\n",&n);
if(n==0)
break;
printf("%d\n",get(n));
}
return 0;
}
0.0分
0 人评分
【密码】 (C语言代码)浏览:350 |
兰顿蚂蚁 (C++代码)浏览:1225 |
P1001 (C语言代码)浏览:836 |
简单的a+b (C语言代码)浏览:385 |
【明明的随机数】 (C语言代码)浏览:845 |
简单的a+b (C语言代码)浏览:878 |
愚蠢的摄影师 (C++代码)浏览:980 |
模拟计算器 (C++代码)浏览:885 |
1054题解浏览:516 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:751 |