列表

详情


HJ61. 放苹果

描述

把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
注意:如果有7个苹果和3个盘子,(5,1,1)和(1,5,1)被视为是同一种分法。

数据范围:


输入描述

输入两个int整数

输出描述

输出结果,int型

示例1

输入:

7 3

输出:

8

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 1ms, 内存消耗: 256KB, 提交时间: 2020-07-07

#include <stdio.h>

int fun(int m,int n){
    if(m==0||n==1){
        return 1;
    }else if(m<n){
        return fun(m,m);
    }else{
        return fun(m-n,n)+fun(m,n-1);
    }
}
int main(){
    int a,b,num;
    while(~scanf("%d%d",&a,&b)){
        num = fun(a,b);
        printf("%d\n",num);
    }
}

C 解法, 执行用时: 1ms, 内存消耗: 260KB, 提交时间: 2020-12-20

#include<stdio.h>

int fen(int a,int b)
{
    if(a==0 || b==1)
    {
        return 1;
    }else if(a<b)
    {
        return fen(a,a);
    }else
    {
        return fen(a-b,b)+fen(a,b-1);
    }
}

int main()
{
    int a,b;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        int count=fen(a,b);
        printf("%d\n",count);
    }
    return 0;
}

上一题