#include <iostream>
using namespace std;
/*
m 个苹果
n 个盘子
*/
int ways(int m, int n) {
if (m == 0) { //苹果没了,这是一种方法
return 1;
}
if (n == 0) { //苹果还有,但是没盘子了,这种不行
return 0;
}
if (m < n) { //苹果的数量 < 盘子数量 那么拿掉几个盘子不影响结果
return ways(m, m);
}
if (m >= n) { //苹果的数量 >= 盘子数量
return ways(m - n, n) + ways(m, n - 1);
}
return 0;
}
int main() {
int m, n; //m个苹果, n个盘子
while (cin >> m >> n) { // 注意 while 处理多个 case
int t = ways(m, n);
printf("%d\n", t);
}
}
// 64 位输出请用 printf("%lld")

京公网安备 11010502036488号