放苹果

蹲街弑〆低调 提交于 2020-02-12 00:22:19

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

Input

第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。

Output

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

Sample Input

1
7 3

Sample Output

8

*******************************************************************************************************************

这是一个递归的题

对于将m个苹果 放进n个盘子里,可以考虑以下两种情况:

 1:如果n>m,那么必然有至少n-m个盘子是空的,分法数等于将m个苹果放入m个盘子时的情况k(m,n)=k(m,m).

2:对于n<=m的情况,有两种分发:有盘子空着,没有盘子空着 k(m,n)=k(m-n,n)+k(m,n-1) 


*************************************************************************************************************************************************代码如下:

#include <stdio.h>
int kmy(int m,int n)
{
    if(m==1||n==1)
        return 1;
    if(n>m)
        return kmy(m,m);
    else
        return kmy(m,n-1)+kmy(m-n,n);
}
int main()
{
    int t,m,n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&m,&n);
        printf("%d\n",kmy(m,n));
    }
    return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!