当前位置: 代码迷 >> 综合 >> 1172:求10000以内n的阶乘
  详细解决方案

1172:求10000以内n的阶乘

热度:98   发布时间:2024-02-11 11:52:51.0

题目描述:

求10000以内n的阶乘。带我去看题目

输入:

只有一行输入,整数n(0 ≤ n ≤ 10000)。

输出:

一行,即n!的值。

输入样例:

4

输出样例:

24

通过代码:

#include <bits/stdc++.h>
using namespace std;
unsigned int n,a[40001] = {1,1};
int main(){scanf("%d",&n);for(register int i = 2;i <= n;i ++){register int j;for(j = 1;j <= a[0];j ++) a[j] *= i;for(j = 1;j <= a[0];j ++){if(a[j] > 9){a[j + 1] += a[j] / 10;a[j] %= 10;if(j == a[0])a[0] ++;}}}while(a[a[0]] == 0 && a[0] > 0) -- a[0];for(register int i = 1;i <= a[0];i ++)putchar(a[a[0] - i + 1] + '0');
}