社区讨论

0分 求助!!!!

P1009[NOIP 1998 普及组] 阶乘之和参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lo8or82m
此快照首次捕获于
2023/10/27 22:05
2 年前
此快照最后确认于
2023/10/27 22:05
2 年前
查看原帖
CPP
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
// 完成高精度加法与乘法
// 乘法:高精度*单精度
int n;
int a[120];
int b[120];
void add(int a[],int b[]){
	int jw = 0;
	for(int i=1;i<=120;i++){
		b[i] = b[i] + a[i] + jw;
		jw = b[i] / 10;
		b[i] = b[i] % 10;
	}
}
void cheng(int a[],int c){
	int jw = 0;
	for(int i=1;i<=120;i++){
		a[i] = a[i]*c+jw;
		jw = a[i]/10;
		a[i] = a[i] % 10;
	}
}
int main(){
	cin >> n;
	a[1] = 1;
	for(int i=1;i<=n;i++){
		cheng(a,i);
		add(a,b);
	}
	bool flag = 0;
	for(int i=120;i>=1;i--){
		if(b[i]!=0)flag=1;
		if(flag) cout << b[i];
	}
	cout << endl;
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...