Skip to content

Latest commit

 

History

History
42 lines (32 loc) · 966 Bytes

poj 1664 放苹果.md

File metadata and controls

42 lines (32 loc) · 966 Bytes

题目

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

输入描述

第一行是测试数据

输出描述

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

输入例子

  • 1
  • 7 3

输出例子 *8

参考答案

#include<stdio.h>

int fun(int m,int n)  //m个苹果放在n个盘子***有几种方法
{
    if(m==0||n==1)  //因为我们总是让m>=n来求解的,所以m-n>=0,所以让m=0时候结束,如果改为m=1,
        return 1;    //则可能出现m-n=0的情况从而不能得到正确解    
    if(n>m)
        return fun(m,m);
    else
        return fun(m,n-1)+fun(m-n,n);
}

int main()
{
    int T,m,n;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&m,&n);
        printf("%d\n",fun(m,n));
    }
}