标签:des style blog io color sp for strong on
好久没刷题,现在看到这道简单的递归竟然卡了下=。=!分析问题的思维!!
Problem Description
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
Input
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
Output
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
Sample Input
2
4
5
0
Sample Output
2
4
6
思路分析:
从五年开始,就有小母牛可以生小牛了。分析第N年(N>4)有几只小牛,其实是看第N年年初有几只牛可以生小牛,用第N-1年的数量加上这几只能生小牛的母牛数量就可以得到第N年的母牛总数!而第N年年初能生孩子的母牛,都是3年前就生下来的母牛!于是我们可以得到这样一个递归式:
F(N)=F(N-1)+F(N-3) (N>4)
代码如下:
#include<stdio.h> int main() { int f[57],n,i; f[0]=1;f[1]=1,f[2]=2;f[3]=3; for(i=4;i<57;i++){ f[i]=f[i-1]+f[i-3]; } while(scanf("%d",&n)!=EOF&&n!=0){ printf("%d\n",f[n]); } }
标签:des style blog io color sp for strong on
原文地址:http://www.cnblogs.com/wrj2014/p/4163061.html