7-47 小艾考递推
分数 20
全屏浏览题目
切换布局
作者 ghost
单位 南昌航空大学
小艾同学,江湖流传称号规律全能王,他从小就沉迷推理分析无法自拔,只要能推理或者找规律的题目甭管它考察什么知识点,盘它就对了。小艾同学惊人的推理分析能力,让他的小伙伴们羡慕不已,于是来向他求教推理方法,当然小艾同学不可能直接教他的小伙伴们,得先考验考验他们再另行考虑。
题目如下:
设一对大兔子每月生一对小兔子,每对新生兔在出生一个月后又下崽,假若兔子都不死亡。特别的,在第一个月后单独额外引入了一对大兔子(友情提示:初始有一对兔子一个月后生了一对小兔子,在这时,多引入了一对大兔子,但是第二个月2,3,4......个月都不额外引入其他兔子),假若兔子都不死亡。问:第n个月后会有多少对兔子?来吧,快速地啃下这道题你就是下一个规律全能王!
输入格式:
输入一个整数n(1<=n<=70)
输出格式:
输出一个整数第n个月后兔子的对数
输入样例1:
1
输出样例1:
3
样例解释:第一个月后额外引入了一对,大兔子又生了一对,1+1+1=3
输入样例2:
2
输出样例2:
5
样例解释:第一个月后有两对大兔子,一对小兔子。一个月后有两对大兔子会生两对小兔子,还有一对小兔子还在发育阶段下个月才能生育,所以答案为2 + 2 + 1 = 5
详细代码如下:
#include<stdio.h>
int main(){
int n;
long long int a[71],b[71],t;//a为成年兔子,b组为未成年兔子
//成年兔子不减少,未成年兔子每月减少上月产出量
//成年兔子增加未成年兔子减少量,未成年兔子增加成年兔子的量
a[0]=2;
b[0]=1;
for(int i=0;i<70;i++){
t=a[i];
a[i+1]=b[i]+a[i];
b[i+1]=t;
}
scanf("%d",&n);
printf("%lld",a[n-1]+b[n-1]);
return 0;
}

2万+

被折叠的 条评论
为什么被折叠?



