放苹果
来源:互联网 发布:淘宝降权该怎么办 编辑:程序博客网 时间:2024/06/02 12:36
/*题目描述
把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*/
#include <stdio.h>int sum;void fun(int M, int N, int max)//M表示剩余苹果数,N表示剩余盘子数,max表示当前苹果数 { if(M == 0 && N == 0) { sum++; return; } else if(M < 0 || N < 0) { return; } for(int i = max; i >= 0; i--) { fun(M - i, N - 1, i); }}int main(){ int t, M, N; scanf("%d", &t); while(t--) { sum = 0; scanf("%d%d", &M, &N); fun(M, N, M); printf("%d\n", sum); } return 0;}
0 0