题解 | #吃糖果#
吃糖果
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")
查看1道真题和解析