蓝桥杯 VIP 阶乘计算
来源:互联网
大数阶乘,对于C/C++来说,必须自己通过数组实现大数运算,因为n是小于等于1000的,所以n不需要用大数来保存,这里我还是采用之前使用过的大数算法,即通过一个整型数组,逆序存储大数,如123在数组中是321,在进行乘法的时候,首先让乘数乘以数组中的每一位,然后再进位处理,因为进位是从低位向高位进位,对应到数组中就是从左向右进位,这就是为什么数字要逆序存储,对于数组中的每一个元素,如果它的值大于9,那么需要把它除以10并将结果加到高位,而它本身则需要对10取余,进位完成之后,就可以得到一次乘法的结果,输出的时候,首先要倒序查找,找到第一个不为0的数,这就是结果的第一位,然后从这个位置开始,倒序输出,即可得到最终的结果。大数阶乘,对于C/C++来说,必须自己通过数组实现大数运算,因为n是小于等于1000的,所以n不需要