题解 | #放苹果#

放苹果

https://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf

#include <iostream>
using namespace std;

int f(int apple, int plate, int start){
    int ans = 0;
    if(start > apple) return 0;
    else if(apple == 1 || plate == 1) return 1;
    else if(apple < plate) return f(apple, apple, start);
    else {
        for(int i = start; i <= apple / 2; i++){
            ans += f(apple - i, plate - 1, i);
        }
        return ans;
    }
}
int main() {
    int apple, plate;
    cin >> apple >> plate;
    cout << f(apple, plate, 0) << endl;
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务