首页 > 代码库 > 大数阶乘问题!

大数阶乘问题!

对于 新手的我来说  写起来 还是有一点吃力  好在写出来了!

技术分享
 1 #include<stdio.h>  2 int main()  3 {   4     int m; 5     scanf( "%d" , &m ); 6     int a[50000] = {0,1}; 7     //static int a[50000]={0,1};//第一位不用   8     int i, j, carry, tmp, lenth = 1;//carry表示进位   9       10     for( i=2 ; i <= m; i++)  11     {  12         carry = 0;  13         for( j = 1; j <= lenth; j++)  14         {  15             //乘法转化为加法和进位  16             tmp = a[j] * i + carry;  17             a[j] = tmp % 10;  18             carry = tmp / 10;  19   20             //如果有进位,则向前扩展一位  21             if( j == lenth && carry != 0)  22                 lenth ++;  23         }  24     }  25     for( int k = lenth; k >= 1; k--)  26         printf( "%d" , a[k] );  27         return 0;28 } 
戳这里

就是这样子  以后再来看

 

大数阶乘问题!