C++阶乘的问题

当n小时,结果正确,但是n一大,比如n=13时答案不应该是6227020800,我的是1932093504,我知道此时值应该溢出,所以是这个问题吗?应该怎么改?
#include <iostream>
using namespace std;
int JH(int num){
int f;
if(num==1)
f=1;
else
f=JH(num-1)*num;
return f;
}
int main(){
int n;
cin>>n;
cout<<JH(n)<<endl;
return 0;
}

qq_笑_17
浏览 542回答 1
1回答

白猪掌柜的

把int改成unsigned int,如果想要更大,就unsigned long long,或者__int64
打开App,查看更多内容
随时随地看视频慕课网APP