首页 > 代码库 > 大数阶乘问题!
大数阶乘问题!
对于 新手的我来说 写起来 还是有一点吃力 好在写出来了!
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 }
就是这样子 以后再来看
大数阶乘问题!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。