首页 > 其他 > 详细

HDOJ2018 母牛的故事

时间:2015-11-29 00:32:36      阅读:252      评论:0      收藏:0      [点我收藏+]
Problem Description
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
 
Input
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
 
Output
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
 
Sample Input
2 4 5 0
 
Sample Output
2 4 6
 
从样例我们可以分析出,小母牛长三年就可以生牛,那么当前的牛就是去年的牛加上三年前的牛,因为三年前的牛等价于都再生一只小牛
即f(n)=f(n-1)+f(n-3)
由上面几组样例可以知道f(0)=1,f(1)=1,f(2)=2,这样,我们就可以建立一个递归函数,代码如下:
 1 #include <stdio.h>
 2 
 3 int fib(int n){
 4     if(n==0) return 1;
 5     if(n==1) return 1;
 6     if(n==2) return 2;
 7     return fib(n-1)+fib(n-3);
 8 }
 9 
10 int main()
11 {
12     int n;
13     while(scanf("%d", &n)&&(n!=0))
14         printf("%d\n", fib(n));
15     return 0;
16 }

 

HDOJ2018 母牛的故事

原文:http://www.cnblogs.com/striderdu/p/5003669.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!