描述 |
---|
小倩学姐想要花若干天时间种植m棵树,每天都可以决定当天要种的棵数,最少种1棵,最多种3棵,种完为止,没有天数上的限制。问有多少种不同的种植方案? |
输入 |
多组案例。一个正整数n,表示案例的数量。(n<=20) 每组案例由一个正整数m组成,表示总共有m棵树。(m<=30) |
输出 |
针对每组案例,输出一个整数,表示有多少种植树方案。(答案保证在int范围内) 每组案例输出完都要换行。 |
样例输入 复制样例 |
2 2 10 |
样例输出 |
2 274 |
HINT |
解:
#include<iostream>
using namespace std;
int f(int m)
{
int x;
if(m<0) return 0;
if(m==0) return 1;
if(m==2) return 2;
if(m==3) return 4;
else x=f(m-1)+f(m-2)+f(m-3);
return x;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int m;
cin>>m;
cout<<f(m)<<endl;
}
return 0;
}