最近一面学习数据结构,一面在做些c语言的题目。这个题目前些天碰到,和同学讨论了下。于是就用c语言实现n!(n=10000)
1 #include2 #define MAX 50000 3 4 int main(void) 5 { 6 int a[MAX] = { 0}; //置数组每一位为0 7 a[MAX-1] = 1; 8 9 int k, i; //k遍历阶乘,i作为数组下标10 int go = 0; //go作为进位11 12 for (k=2; k<=10000; k++) //每乘一个数,遍历整个数组13 for (i=MAX-1; i>=0; i--) //从数组最后一位放起14 {15 int temp;16 temp = a[i] * k + go; //乘法原理17 a[i] = temp % 10; 18 go = temp / 10;19 }20 i = 0;21 while (!a[i++]) //过滤掉数组前面的022 ;23 k = i;24 for (i--; i