<母牛的故事>,帮我看看这个算法有什么问题!

kai7621260 2009-03-15 03:07:21
Problem Description
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?


Input
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。


Output
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。


Sample Input
2
4
5
0


Sample Output
2
4
6


我的代码,通过不了
#include<stdio.h>
long niu(int x)
{
if(x<5)
return x;
else if(x==5)
return x-3;
else
return niu(x-1)+(x-3);
}
int main()
{
int n;
long z;
while(scanf("%d",&n)!=EOF && n!=0)
{

if(n<5)
z=niu(n);
else
z=niu(n)+4;
printf("%ld\n",z);
}
return 0;
}
...全文
179 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanjingshe11 2009-04-20
  • 打赏
  • 举报
回复
楼上的这段代码submit后会提示time limit exceeding这个错误
我也是初学者,不知道怎么改,希望楼上那位高手指点下
donkey301 2009-03-15
  • 打赏
  • 举报
回复


long niu(int x)
{
if(x <5)
return x;
else
return niu(x-1)+niu(x-3);//表示第x年的牛数 = 第x-1年的牛数 + 在第x-1年有生育能力的牛数(也就是第x-3年时的牛数)
}
int main()
{
int n;
long z;
while(scanf("%d",&n)!=EOF && n!=0)
{
z=niu(n);
printf("%ld\n",z);
}
return 0;
}

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧