题解 | 吃糖果
#include <bits/stdc++.h> using namespace std; const int N=100; int a[N]; int main(){ int n; memset(a,0,sizeof(a)); while(cin>>n){ a[1]=1; a[2]=2; for(int i=3;i<=n;i++){ if(i>n)break; a[i]=a[i-1]+a[i-2]; } cout<<a[n]<<endl; } }
这题就是爬阶问题的改编,每多一块糖,就多一个可能性,其实这种类型的问题,本质上就是用数组模拟一个数列的递推过程