小明知道阶乘是递增非常快的数,但是只想知道结果最后5位,请你帮助他。 输入格式: 输入一个数N。1<=N<=1000000。 输出格式: 输出N!的最后5位数字。如果位数不够。请用0补齐。 输入样例: 在这里给出一组输入。例如: 5 5 6 7 8 9 输出样例: 在这里给出相应的输出。例如: 00120 00720 05040 40320 62880
时间: 2024-03-10 20:47:10 浏览: 47
由于只需要求阶乘结果的最后5位,则可以在计算阶乘的过程中,每次将结果对100000取模,只保留最后5位。最终输出结果时,可以根据实际情况在高位补0。
下面是具体的代码实现:
```python
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int ans = 1;
for (int i = 2; i <= n; i++)
{
ans = (ans * i) % 100000;
}
if (ans < 10000) // 需要补3个0
printf("00%d", ans);
else if (ans < 1000) // 需要补2个0
printf("0%d", ans);
else if (ans < 100) // 需要补1个0
printf("00%d", ans);
else
printf("%d", ans);
return 0;
}
```
输入5,输出00120,符合要求。
阅读全文