全wa。。。哭死
查看原帖
全wa。。。哭死
675527
Play_CP_4fun楼主2022/4/8 22:47
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100;
string s1 = "1", s2, s3 = "0";
string add (string x1, string y1) {
	string sum;
	int a1[maxn] = {0}, b1[maxn] = {0}, c1[maxn] = {0};
	int l1 = x1.length(), l2 = y1.length();
	for (int i = 0; i < l1; i++) a1[i] = x1[l1 - 1 - i] - '0';
	for (int i = 0; i < l2; i++) b1[i] = y1[l2 - 1 - i] - '0';
	for (int i = 0; i < maxn; i++) {
		c1[i] += a1[i] + b1[i];
		if (c1[i] >= 10) {
			c1[i + 1] += c1[i] / 10;
			c1[i] %= 10;
		}
	}
	int mark = maxn - 1;
	for (; mark >= 1; mark--) {
		if (c1[mark] != 0) break;
	}
	for (; mark >= 0; mark--) {
		string tmp = to_string(c1[mark]);
		sum += tmp;
	}
	return sum;
}
string multiply (string x1, string y1) {
	int a1[maxn] = {0}, b1[maxn] = {0}, c1[maxn] = {0};
	string product;
	char check1[100];
	memset(check1, '0', sizeof(check1));
	int l1 = x1.length(), l2 = y1.length();
	for (int i = 0; i < l1; i++) a1[i] = x1[l1 - 1 - i] - '0';
	for (int i = 0; i < l2; i++) b1[i] = y1[l2 - 1 - i] - '0';
	for (int i = 0; i < maxn; i++) {
		for (int j = 0; j <= i; j++) {
			c1[i] += a1[j] * b1[i - j];
		}
		if (c1[i] >= 10) {
			c1[i + 1] += c1[i] / 10;
			c1[i] %= 10;
		}
	}
	int mark = 100;
	for (; mark >= 1; mark--) {
		if (c1[mark] != 0) break;
	}
	for (int i = 0; mark >= 0; i++, mark--) {
		string tmp = to_string(c1[mark]);
		product += tmp;
	}
	return product;
}
int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= i; j++) {
			s2 = to_string(j);
			s1 = multiply(s1, s2);
		}
		s3 = add(s1, s3);
		s1 = "1";
	}
	cout << s3;
	return 0;
}		

最后不能输出字符串吗。

2022/4/8 22:47
加载中...