运用递归:
1.当盘子数多多余苹果数,多余的盘子肯定没有用了,所以getCount(m,m)
2.反之有两种情况,一是将所有的盘子都用了那么每个盘子至少有一个苹果即getCount(m-n,n),二是至少有一个盘子没有即getCount(m,n-1)
#include<iostream>
using namespace std;
int getCount(int m,int n)
{
if(m==0||n=1)
{
return 1;
}
if(n>m)
{
return getCount(m,m);
}
else
{
return getCount(m,n-1)+getCount(m-n,n);
}
}
int main()
{
int m,n;
cin>>m>>n;
if(m<1||m>10||n<1||n>10)
{
cout<<"-1"<<endl;
}
cout<<getCount(m,n)<<endl;
return 0;
}