知识点:递推,递归
思路:①苹果最少的盘子放了一个,这样每个盘子至少一个,n个盘子先放上n个,剩下的m-n个可以随便放 ②苹果最少的盘子没有放苹果,这样剩下的n-1个盘子还是随便放m个
#include <iostream>
using namespace std;
int f(int m,int n)
{
if(m<0)
return 0;
if(m==0||n==1)
return 1;
return f(m-n,n)+f(m,n-1); // 其实此处的递归实质就是要减少苹果和盘子的规模。从而使题目回归最原始的简单。。。。
}
int main()
{
int M,N;
cin >> M >> N;
cout << f(M,N) << endl;
return 0;
}