mas1724 2019-05-07 19:11 采纳率: 0%
浏览 1319

把M个不同的桔子放在N个同样的盘子里,不允许有的盘子空着不放,问共有多少种不同的分法?

大神帮解
急!!!
用递归 C++
题目描述
把M个不同的桔子放在N个同样的盘子里,不允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)
说明: M=2,N=2时,({1} ,{2} ) 和( {2} ,{ 1} ) 是同一种分法。
输入
一行均包含二个整数M和N,以空格分开。1<=M,N<=10
输出
一行,一个整数K,可行的方案数。
样例输入
7 3
样例输出
4
注:不允许有盘子空着不放

需大神帮改代码
#include
using namespace std;
int apple(int m, int n)
{
if(m if(m==1 ||n==1) return 1;
return apple(m-n,n)+apple(m,n-1);
}
int main()
{
int m,n;
cin>>m>>n;
cout<<apple(m,n)<<endl;
return 0;
}
这是允许有空盘的需大神帮改为不允许有盘子空着不放的,谢谢

  • 写回答

2条回答

  • 未雨71 2023-04-25 00:06
    关注
    
    #include<iostream>
    using namespace std;
    int k=1;
    int fun(int m,int n){
        if(k==1){
            if(m<=1 || n<=1)return 1; 
            if(n>=m) return 1;
            else{
                return fun(m-n-n,n)+fun(m,n-1);
            }    
        }else{
            if(m<=1 || n<=1)return 1; 
            if(n>=m) return 1;
            else{
                return fun(m-n,n)+fun(m,n-1);
            }
        } 
        k++;    
    }
    int main(){
        int m,n;
        cin >> m >> n;
        cout << fun(m,n);
        return 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容