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