C语言 用递归 解决 组合问题 求助

2025-01-02 02:40:55
推荐回答(2个)
回答1:

稍作修改:

#include
#include
using namespace std;

int cm(int x,int y)
{
    if (y > x-y){
        y = x-y;
    }
    if(y==0)
        return 1;
    else if(y==1)
        return x;
    else if(y>1)
        return cm(x-1,y-1)+cm(x-1,y);
}

int main()
{
    int m,n,x;
    cout<<"input 2 numbers:"<    cin>>m;
    cin>>n;
    x=cm(m,n);
    printf("%d",x);
}

回答2:

你还少了一个条件,那就是 n>m-n