放苹果

来源:互联网 发布:淘宝降权该怎么办 编辑:程序博客网 时间: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
原创粉丝点击