题解 | #吃糖果#

吃糖果

https://www.nowcoder.com/practice/72015680c32b449899e81f1470836097

递归实现。

巧克力情况可以看成当天吃2块或者当天吃1块两种。

递归退出条件是巧克力个数n位0或1的时候,即(2,0)或(1,1)两种情况,此时函数返回值为1。

#include <iostream>
using namespace std;

int ans(int n){	//计算方案数
    if (n < 0) return 0;
    else if (n == 0 || n == 1) return 1;	//递归退出条件
    else {  //(n >= 2)
        return ans(n-2) + ans(n-1);	//巧克力块数>=2时,需要分为当天吃2块或者当天吃1块两种情况
    }
}

int main() {
    int n;  //巧克力总块数
    while (cin >> n) { //输入巧克力总块数
        int a = ans(n);	//调用函数
        cout<<a<<endl;	//输出方案数
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务