ACM PKU 1664 放苹果 http://acm.pku.edu.cn/JudgeOnline/problem?id=1664
解题思路:
每种情况都可以归结为:
1、所有盘子中最少的放 0 个苹果,那么剩余的 n-1 个盘子就可以随便放了;
2、如果盘子中最少苹果数为 1 ,那么就相当于将 m-n 个苹果放到 n 个盘子里的结论是一样的;
#include <iostream>
using namespace std;
int solve ( int m ,int n)
{
if (m < 0)
return 0;
if (m == 0 || n==1)
return 1;
return solve(m - n, n) + solve ( m, n-1);
}
int main ()
{
int t, m, n;
cin >> t;
while(t--)
{
cin >> m >> n;
cout<< solve(m, n)<<endl;
}
return 0;
}
浙公网安备 33010602011771号