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;
}

posted on 2011-05-06 18:37  _Clarence  阅读(167)  评论(0编辑  收藏  举报

导航