码迷,mamicode.com
首页 > 其他好文 > 详细

简单的递归

时间:2014-12-14 22:27:35      阅读:255      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!