题解 | #放苹果#
放苹果
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;
}

查看20道真题和解析