使用递归来做比较好,
#include <iostream>
using namespace std;
int SharingApple(int m, int n)
{
if(m == 1 || n == 1)
return 1;
if(m < n)
return SharingApple(m , m);
else if(m > n)
return SharingApple(m, n-1) + SharingApple(m-n, n);
else
return 1 + SharingApple(m, n-1);
}
int main()
{
int M,N;
cin >> M >> N;
cout << SharingApple(M,N) << endl;
//system("pause");
return 0;
}
if(m > n) return SharingApple(m, n-1) + SharingApple(m-n, n); 就是至少一个盘子空的情况+所有盘子都不空的情况 |