提交记录 28675


用户 题目 状态 得分 用时 内存 语言 代码长度
yrq919 1005a. 【模板题】高精度除法 Accepted 100 704.967 ms 336 KB C++ 1.41 KB
提交时间 评测时间
2025-11-16 13:20:15 2025-11-16 13:20:17
#include <iostream>
#include <bits/stdc++.h>
using namespace std;

void stovec(vector<int> &a, string s) {
	a.resize(s.size());
	reverse(s.begin(), s.end());
	for (int i = 0; i < s.size(); i++) {
		a[i] = s[i] - '0';
	}
}

bool cmp(vector<int> &a, vector<int> b) {
	if (a.size() != b.size()) {
		return a.size() > b.size();
	}
	for (int i = a.size() - 1; i >= 0; i--) {
		if (a[i] != b[i]) {
			return a[i] > b[i];
		}
	}
	return true;
}

void jian (vector<int> &a, vector<int>b) {
	for (int i = 0; i < b.size(); i++) {
		a[i] -= b[i];
		if (a[i] < 0) {
			a[i] += 10;
			a[i + 1]--;
		}
	}
	while (a.back() == 0 && a.size() > 1) {
		a.pop_back();
	}
}

void chu(vector<int> a, vector<int> b, vector<int> &c, vector<int> &yu) {
	c.resize(a.size());
	for (int i = a.size() - 1; i >= 0; i--) {
		yu.insert(yu.begin(), a[i]);

		if (!cmp(a, b)) {
			continue;
		}
		int sum = 0;
		while (cmp(yu, b)) {
			jian(yu, b);
			sum++;
		}
		c.insert(c.begin(), sum);

	}
	while (c.back() == 0 && c.size() > 1) {
		c.pop_back();
	}
}

int main() {
	vector<int> a, b, c, yu;
	string a1, b1;
	cin >> a1 >> b1;
	stovec(a, a1);
	stovec(b, b1);
	if (a1.size() < b1.size() || a1.size() == b1.size() && a1 < b1) {
		cout << 0 << "余" << a1;
	} else {
		chu(a, b, c, yu);
		reverse(c.begin(), c.end());
		reverse(yu.begin(), yu.end());
		for (int i : c) {
			cout << i;
		}
//		cout << '\n' << "余";
//		for (int i : yu) {
//			cout << i;
//		}
	}

	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1704.967 ms336 KBAcceptedScore: 100


Judge Duck Online | 评测鸭在线
Server Time: 2025-11-17 10:29:07 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠