Description
这是一题简单的题目,考的只是你的数学而已。我一直都很好奇愚公一家到底有多少人。好吧,毛学姐说你们会帮我的。假设愚公家族 每个人的一生是这样度过的:(当他回首往事的时候。。。开个玩笑,请无视) 头20年用来生长发育以及挖山,第21年(可以理解为21岁的时候)开始 每年生下一个孩子( 自交,任性, 没妻子,全生男,且不考虑死亡),当然还要去挖山。我们默认愚公11岁的时候为第一年(第2121年愚公生下第一胎),求第N年愚公家族(愚公家族不需要妻子,别考虑太多)有多少人。
Input
有多组测试数据,每组占一行,包括一个数N(0<N<=60)N(0<N<=60),N为第N年。
Output
对于每组测试,输出整数MM,MM为愚公家族的人数。
Sample Input1
1
21
41
Sample Output1
1
2
23
一个递归,前二十年因为只有一个人且他没到二十,所以无后代,那么前二十年就只有1个人,二十年之后,下一年的人数便是上一年的人数加上二十年前的人数(前一年的人不死所以要算上,而且会增加一部分人,这些人的人数是二十年前的人数,因为二十年前的人现在都可以生了),这样就是一个变形的斐波那契,递归就可以解决
#include<stdio.h>
int f(int N){
if (N<61){
if (N<=20&&N>0) return 1;
else return f(N-1)+f(N-20);}
}
int main()
{
int N,M;
while (scanf("%d",&N)!=EOF){
M=f(N);
printf("%d\n",M);
}
return 0;
}