温承瑜 2022-11-10 23:32 采纳率: 78.3%
浏览 14
已结题

c++之计算组合之调用函数(必使用zh(n,m)版,

img

img


使用了调用函数,并且也用了阶乘的算法,但为什么运行结果是0?想不明白。希望大家指导😭

  • 写回答

1条回答 默认 最新

  • bingbingyihao 2022-11-11 00:38
    关注

    回答:代码没问题的,应该是编译器的问题,代码逻辑很清晰;

    img

    #include <iostream>
    using namespace std;
    
    long fac(int n){
        long p;
        if(n == 1){
            p = 1;
        } else {
            p = n * fac(n-1);
        }
        return p;
    }
    
    int zh(int n, int m){
        int l, j, k;
        l = fac(n);
        j = fac(m);
        cout<<l<<endl;
        cout<<j<<endl;
        k = l / j;
        return k;
    }
    
    int main(){
        int m, n, l;
        cin>>n>>m;
        l = zh(n, m);
        cout<<l<<endl;
        return 1;
    }
    

    正确计算为:

    img

    #include <iostream>
    using namespace std;
    
    long fac(int n){
        long p;
        if(n == 1){
            p = 1;
        } else {
            p = n * fac(n-1);
        }
        return p;
    }
    
    int zh(int n, int m){
        int l, j, k;
        l = fac(n);
        j = fac(m);
        cout<<l<<endl;
        cout<<j<<endl;
        k = l / j;
        return k;
    }
    
    int main(){
        int m, n, l;
        cin>>n>>m;
        l = zh(n, m) / fac(n - m);
        cout<<l<<endl;
        return 1;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 创建了问题 11月10日