题解 | #吃糖果#
吃糖果
https://www.nowcoder.com/practice/72015680c32b449899e81f1470836097
n块的吃法可分解为两个子问题:即第一天吃1块,剩下n-1块如何吃;第一天吃2块,剩下n-2块怎么吃。用数学递推方式表示为a(n)=a(n-1)+a(n-2)(且n>=3)
#include <iostream> using namespace std; int main() { int N; while (cin >>N) { // 注意 while 处理多个 case // cout << a + b << endl; int pre=1; int post=2; int temp=1; if(N==2) temp=2; for(int i=3;i<=N;i++){ temp=pre+post; pre=post; post=temp; } cout<<temp<<endl; } } // 64 位输出请用 printf("%lld")