摆小球A(ballA.cpp)

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果摆小球A(ballA.cpp)

【题目描述】
把 M 个同样的小球放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
(注意:5,1,1 和 1,5,1 是同一种分法)
【输入格式】
两个正整数M和N,用空格隔开
【输出格式】
一个正整数,即小球摆放的方法数
【样例输入1】
7 3
【样例输出1】
8
【样例输入2】
60 43
【样例输出2】
965552
【数据范围】
对于100%的数据,1<=M,N<=100

输入:
两个正整数M和N,用空格隔开
输出:
一个正整数,即小球摆放的方法数
难度:
一般
输入示例:
7 3
输出示例:
8
代码类型:
C/C++

img


望采纳!


#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int coun(int m, int n);
int main(){
    int m, n;
    while (1){
        cin >> m >> n;
        int res = coun(m, n);
        cout << res;
    }
    return 0;
}
int coun(int m, int n){
    if (m == 0 || n == 1)
        return 1;
    if (n > m)
        return coun(m, m);
    else
        return coun(m, n - 1) + coun(m - n, n);
}

#include <iostream>
int fun(int m,int n){
    if(m==0||n==1)
        return 1;
    if(m <n)
        return fun(m,m);
    else
        return fun(m,n-1)+fun(m-n,n);    
}
 
int main(){
    int m,n;//m个苹果 n个盘子 
    printf("input n,m:");
    scanf("%d%d",&n,&m);
    printf("count= %d",fun(m,n));
    return 0;
}