#include <iostream>
using namespace std;

int f(int n)
{
    int g;
    if (n==1)
    g=1;
    else 
    if (n==2)
    g=2;
    else
    g=f(n-1)+f(n-2);
    return g;
}

int main() {
    int a;
    int m;
    while (cin >> a ) { // 注意 while 处理多个 case
    m=f(a);
    cout<<m<<endl;
    }
    return 0;
}
// 64 位输出请用 printf(\"%lld\")

实际上题目有提示了,可以猜出来用斐波那契数列。

分析:从后往前推

设求吃糖果

第n天可以选择吃一个或者两个,那么相应的第n-1天的选择数为f(n-1)与f(n-2),由此得到递推式f(n)=f(n-1)+f(n-2)。

题目中天数取值范围为0到20,不太大,因此可以直接用递归法就可以快速解决。