OpenJudge/Poj 1664 放苹果

1.链接地址:

http://bailian.openjudge.cn/practice/1664

http://poj.org/problem?id=1664

2.题目:

总时间限制:
1000ms
内存限制:
65536kB
描述
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
输入
第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。
输出
对输入的每组数据M和N,用一行输出相应的K。
样例输入
1

7 3

样例输出
8
来源
lwx@POJ

3.思路:

4.代码:

 1 #include <iostream>

 2 #include <cstdio>

 3 

 4 using namespace std;

 5 

 6 int f(int m,int n)

 7 {

 8     if(n == 1 || m == 0) return 1;

 9     else if(m < n) return f(m,m);

10     else return f(m,n - 1) + f(m - n,n);

11 }

12 

13 

14 int main()

15 {

16     //freopen("C:\\Users\\wuzhihui\\Desktop\\input.txt","r",stdin);

17 

18     int t;

19     cin>>t;

20     

21     int m,n;

22     while(t--)

23     {

24         cin>>m>>n;

25         cout<<f(m,n)<<endl;

26     }

27     return 0;

28 }

 

你可能感兴趣的:(open)