回答:代码没问题的,应该是编译器的问题,代码逻辑很清晰;
#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;
}