C++编程 求累乘方法 1*2*3*...*n n由自己输入 用递归方法 急求

如题所述

int fac(int n){
return (n == 1 ? 1 : n*fac(n-1));
}

void main(){
printf("%d", fac(5)); // 输出5的阶乘
}

基本即使这样.
不过阶乘数字都非常的大, int类型基本上乘到20结果就会大到溢出.
如果要求很高的话则需要额外的处理, 还是比较麻烦
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-26
用递归求数据量量小的可以,大的不行啊,建议你参考菲波拉起数列的作法
第2个回答  推荐于2018-05-06
实用的阶乘算法是挺复杂的,因为ULONGLONG也放不下,要用数组进行保存,这才是重点,具体你可以参考1000的阶乘,百度有源代码本回答被网友采纳
相似回答