社区讨论

用了__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 条回复,欢迎继续交流。

正在加载回复...