请帮我编写C + +代码题目是给定一个正整数 nn,请计算 S = 1!+2!+3!+\ldots+n!S=1!+2!+3!+…+n! 的末 66 位(不含前导 00)。x!x! 表示 xx 的阶乘,即 1*2*3*\ldots*x1∗2∗3∗…∗x。 【输入格式】 给定一个正整数 nn,请计算 S = 1!+2!+3!+\ldots+n!S=1!+2!+3!+…+n! 的末 66 位(不含前导 00)。x!x! 表示 xx 的阶乘,即 1*2*3*\ldots*x1∗2∗3∗…∗x。
时间: 2023-05-28 11:06:23 浏览: 92
求解不等式C语言小程序代码.txt
#include <stdio.h>
int main()
{
int n, i, j;
long long ans = 1; // ans 存储最终结果
scanf("%d", &n);
for (i = 1; i <= n; i++) // 依次计算每个数的阶乘
{
for (j = 1; j <= i; j++) // 用乘法计算阶乘
{
ans *= j;
if (ans >= 1e20) // 防止数据溢出,每次乘积超过 1e20 时除以 10
{
ans /= 10;
}
}
while (ans % 10 == 0) // 去除末尾的 0
{
ans /= 10;
}
}
printf("%lld\n", ans % 100000000); // 取末 6 位输出
return 0;
}
阅读全文