使用了调用函数,并且也用了阶乘的算法,但为什么运行结果是0?想不明白。希望大家指导😭
1条回答 默认 最新
- bingbingyihao 2022-11-11 00:38关注
回答:代码没问题的,应该是编译器的问题,代码逻辑很清晰;
#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; }
正确计算为:
#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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用