描述
m块饼每天吃2块或者3块(注意:不能吃1块),吃到完为止。问有多少种不同的吃法。
输入
一个正整数n,表示n组案例。
每组案例由一个正整数m构成。(m<=20)
输出
针对每组案例,输出共有多少种吃完的方法。
每组案例输出完都要换行。
样例输入
1
10
样例输出
7
解决方案
//Boss.Yang. 2020.11.5
#include<iostream>
using namespace std;
int f(int n);
int main()
{
int n;
cin >> n;
while (n--)
{
int m;
cin >> m;
cout << f(m) << endl;
}
return 0;
}
int f(int n)
{
int x = 0;
if (n == 0 || n == 1)//要考虑n取3是要回到0和1;所以要设定0和1的情况
{
x = 0;
}
else if (n == 2 || n == 3)
{
x = 1;
}
else
{
x = f(n - 2) + f(n - 3);
}
return x;
}