社区讨论
用了__int128,本地正常,却报错,求调!
P1009[NOIP 1998 普及组] 阶乘之和参与者 6已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lz893j6q
- 此快照首次捕获于
- 2024/07/30 18:03 2 年前
- 此快照最后确认于
- 2024/07/30 19:33 2 年前
CPP
#include <iostream>
#define un128 unsigned __int128
#define ll long long
using namespace std;
un128 read()
{
char arr[30];
unsigned __int128 res = 0;
scanf("%s", arr);
for (int i = 1; i <= strlen(arr); i++)
{
res *= 10;
res += arr[i] - '0';
}
return res;
}
un128 fac(ll n)
{
un128 sum = 1;
for (ll i = 1; i <= n; i++)
{
sum *= i;
}
return sum;
}
void print(un128 num)
{
if (num > 9)
{
print(num / 10);
}
putchar(num % 10 + '0');
}
int main()
{
int n;
cin >> n;
un128 ans = 0;
for (int i = 1; i <= n; i++)
{
ans += fac(i);
}
print(ans);
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...