题目描述
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
输入描述:
每行均包含二个整数M和N,以空格分开。1<=M,N<=10。
输出描述:
对输入的每组数据M和N,用一行输出相应的K。
示例1
输出
复制8
得想想
1 #include <iostream> 2 #include <algorithm> 3 #include <string> 4 #include <cstring> 5 #include <stack> 6 #include <cstdio> 7 #include <queue> 8 #include <vector> 9 using namespace std; 10 const int N=1000005; 11 const int INF=0x3f3f3f3f; 12 typedef long long ll; 13 char a[100]; 14 int n,m; 15 int deal(int n,int m) 16 { 17 if(n==0||m==1) return 1; 18 else if(m>n) return deal(n,n); 19 else return deal(n,m-1)+deal(n-m,m); 20 } 21 int main() 22 { 23 while(cin>>n>>m){ 24 cout<<deal(n,m)<<endl; 25 } 26 return 0; 27 }