高精度 bigint(struct) CE 求条
  • 板块学术版
  • 楼主I_Love_DS
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/9/17 21:19
  • 上次更新2024/9/18 12:48:33
查看原帖
高精度 bigint(struct) CE 求条
1118614
I_Love_DS楼主2024/9/17 21:19
#include <bits/stdc++.h>

using namespace std;

const int N = 1e5 + 50;

struct Bigint {
	char s[N];
	Bigint(char _[]) {
		int len = strlen(_ + 1);
		for (int i = 1; i <= len; i++) s[i] = _[i];
	}
	Bigint operator * (int b) {
		int a[N], c[N], lena = strlen(s + 1), lenc = lena;
		memset(a, 0, sizeof(a));
		memset(c, 0, sizeof(c));
		for (int i = 1; i <= lena; i++) a[i] = s[lena - i + 1] - '0';
		for (int i = 1; i <= lena; i++) c[i] = a[i] * b;
		for (int i = 1; i <= lenc; i++) {
			c[i + 1] += c[i] / 10;
			c[i] %= 10;
		}
		while (c[lenc + 1] >= 10) {
			++lenc;
			c[lenc + 1] += c[lenc] / 10;
			c[lenc] %= 10;
		}
		char S[N];
		memset(S, 0, sizeof(S));
		for (int i = 1; i <= lenc; i++) S[i] = c[lenc - i + 1] + '0';
		Bigint r = Bigint(S);
		return r;
	}
} ;

Bigint dp[10005]; // 报错 no matching function for call to Bigint::Bigint().
// 有且仅有这一行报错


int n;

int main() {
	scanf("%d", &n);
//	for (int i = 1; i <= n; i++) 
//		for (int j = 1; j <= )
	return 0;
}
2024/9/17 21:19
加载中...