开始 2024-08-20 08:00:00

8.19-8.24集训第二天

结束 2024-08-25 00:00:00
Contest is over.
当前 2025-04-04 13:21:30

E题题解...

这道题是一个典型的高精度乘低精度... 话不多说, 直接上代码, 有不懂的看注释

#include <bits/stdc++.h> // 万能头
using namespace std;
int a[40000];
int main() {
	int n;
	cin >> n; // 输入
	a[1] = 1; // 初始1的阶乘是1
	a[0] = 1; // a数组的位数
	for(int i = 2; i <= n; i++) {
		int t = 0; // t 代表进位
		for(int j = 1; j <= a[0]; j++) {
			a[j] = a[j] * i + t; // 每次都加上进位 
			t = a[j] / 10; // 直接算进位 
			a[j] %= 10; // 剩个位 
		}
		while(t > 0) { // 处理进位 
			a[0] ++; // 有进位,怕不够,于是我向前加了一位... 
			a[a[0]] = t % 10; // 直接首位加上进位 
			t /= 10; 
		}
	}
	printf("%d!=",n);
	for(int i = a[0]; i > 0; i--) { // 输出 
		cout << a[i];
	}
	return 0; // 完结撒花ヽ(°▽°)ノ ...
}

综合来看, 本体最大的考点就在于:第13行~第23行。 ✿✿ヽ(°▽°)ノ✿


114514_yzh  •  7个月前

比赛已结束。