hdu2018母牛的故事 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2018
递归水题,涉及到斐波那契数列
百度上有人问这个题,就顺手解决了一下。
题目分析:第一头小牛于第二年出生,也就是说,第一年只有第一头母牛存在。第一头小牛在第四年开始产崽,说明成熟期是三年(周期为三)。所以列出了递归表达式:f(n)=f(n-1)+f(n-3)。可以做了。
#include <stdio.h>
int chuli(int n)
{
if(n<3)
{
switch(n)
{
case 0:return 1;
case 1:return 2;
case 2:return 3;
}
}
else return chuli(n-1)+chuli(n-3);
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n!=0)
{
n--;
if(n<3)
{
switch(n)
{
case 0:printf("1\n");break;
case 1:printf("2\n");break;
case 2:printf("3\n");break;
//case 3:printf("4\n");break;
}
}
else printf("%d\n",chuli(n));
}
return 0;
}
PS:总感觉还有别的更好的办法。超出能力范围了,以后再说。