70求调QwQ(必关)
查看原帖
70求调QwQ(必关)
1419879
meng18018258917楼主2025/7/30 16:55
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 5e6 + 10;
int a[N], b[N], c[N];
void zh(string s, int t[]) {
	reverse(s.begin(), s.end());

	for(int i = 0; i < s.size(); i++) {
		t[i] = s[i] - '0';
	}
}
string gjc(string s1, string s2) {
	memset(a, 0, sizeof(a));
	memset(b, 0, sizeof(b));
	memset(c, 0, sizeof(c));
	zh(s1, a);
	zh(s2, b);
	int la = s1.size();
	int lb = s2.size();
	int lc = la + lb - 1;

	for(int i = 0; i < la; i++) {
		for(int j = 0; j < lb; j++) {
			c[i + j] += a[i] * b[j];
		}
	}

	int jw = 0;

	for(int i = 0; i < lc; i++) {
		c[i] += jw;
		jw = c[i] / 10;
		c[i] %= 10;
	}

	while(jw != 0) {
		lc++;
		c[lc - 1] = jw % 10;
		jw /= 10;
	}

	while(lc > 1 && c[lc - 1] == 0) {
		lc--;
	}

	string s = "";

	for(int i = lc - 1; i >= 0; i--) {
		s += char(c[i] + '0');
	}

	return s;
}
signed main() {
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	string s1;
	int s2;
	cin >> s1 >> s2;
	string jg = "1";

	for(int i = 1; i <= s2; i++) {
		jg = gjc(jg, s1);

		if(jg.size() > 10) {
			cout << -1;
			return 0;
		}
	}

	cout << jg;
	return 0;
}
2025/7/30 16:55
加载中...