Home11月27日:愚公移山

Description

这是一题简单的题目,考的只是你的数学而已。我一直都很好奇愚公一家到底有多少人。好吧,毛学姐说你们会帮我的。假设愚公家族 每个人的一生是这样度过的:(当他回首往事的时候。。。开个玩笑,请无视) 头20年用来生长发育以及挖山,第21年(可以理解为21岁的时候)开始 每年生下一个孩子( 自交,任性, 没妻子,全生男,且不考虑死亡),当然还要去挖山。我们默认愚公1岁的时候为第一年(第21年愚公生下第一胎),求第N年愚公家族(愚公家族不需要妻子,别考虑太多)有多少人。

Input

有多组测试数据,每组占一行,包括一个数N(0<N<=60),N为第N年。

Output

对于每组测试,输出整数M,M为愚公家族的人数。

Sample Input 1

1
21
41

Sample Output 1

1
2
23

C语言思路

  1. 首先可以看出此题是特殊的斐波那契数列,因为要等到愚公20岁之后才会有后代,所以前20年人数都是1。到21年才会有第一个后代,从21到40每年增加一个后代。
  2. 到41年,愚公的第一个后代开始有后代,所以这一年增加2个人。42年第二个后代也开始有后代,所以增加3个人。依次类推,从41年到60年每年增加的人数比上一年多一个。
  3. 之所以20年以后,每年增加的后代会变化,是因为20年前的人都会在今年有后代,所以20年以后的人数即为上一年人数加上20年前的人数。
  4. 定义一个函数f(int x),x为年份,当x<=20时,始终输出1。
  5. 当x>20时,输出f(x-1)+f(x-20),再进行递归即可。
在这里插入代码片

猜你喜欢

转载自blog.csdn.net/weixin_43772166/article/details/84571031
今日推荐