OpenJudge百炼习题解答(C++)--题4108:羚羊数量-Number Of Antelope

题:

总时间限制:1000ms    内存限制:65536kB
描述

草原上有一种羚羊,假设它们出生时为0岁,那么经过3年的成长,当它们在3岁的时候会成年,并开始繁殖。每一对羚羊在3岁的那一年会产下两只小羚羊,并且这对成年羚羊结为永久的伴侣,在以后的每一年又生出两只小羚羊。

假定一对羚羊产下的两只小羚羊必定为一雄一雌,羚羊在3岁时必定会找到另外一只同年羚羊结为永久伴侣,并开始繁殖。此外,假定这种羚羊在50岁以内不会死去。

如果在第0年,草原上有一对0岁的羚羊,那么第n年末草原上有多少对羚羊?

    例如,第1年和第2年,草原上有1对羚羊;第3年,由于这对羚羊成年了,它们会生下一对羚羊,因此第3年末草原上有2对羚羊。

输入
第一行是一个正整数m(1<=n<=15),表示共有m个问题。
下面m行,每行是一个数字n(0<=n<=40),表示第n年。
输出
总共m行,每行一个数字,表示相应的第n年末草原上有几对羚羊。
样例输入:
3134
样例输出:
123
提示
结果不会超出int范围

解:

#include<iostream>
using namespace std;
int f(int a)
{
	
	if(a>=0&&a<=2)
	{
		return 1;
	}
	else if(a==3)
	{
		return 2;
	}
else{
 return f(a-2)+f(a-3)+f(a-4);
}
}
int main()
{
	int n;
	cin>>n;
	int a[n];
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	for(int i=0;i<n;i++)
	{
		cout<<f(a[i])<<endl;
	}
	return 0;
 } 

你可能感兴趣的:(OpenJudge百炼习题解答(C++)--题4108:羚羊数量-Number Of Antelope)