牛客网 放苹果

题目链接:https://www.nowcoder.com/practice/4f0c1e21010e4d849bde5297148e81d9?tpId=40&tqId=21372&tPage=2&rp=2&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking

题目描述

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

输入描述:

每行均包含二个整数M和N,以空格分开。1<=M,N<=10。

输出描述:

对输入的每组数据M和N,用一行输出相应的K。
示例1

输入

复制
7 3

输出

复制
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 }
原文地址:https://www.cnblogs.com/shixinzei/p/10707449.html