提交记录 48276


用户 题目 状态 得分 用时 内存 语言 代码长度
y20456 1005a. 【模板题】高精度除法 Accepted 100 622.497 ms 420 KB C++ 1.37 KB
提交时间 评测时间
2026-09-17 19:57:43 2026-09-17 19:57:46
#include<bits/stdc++.h>
#define int long long
using namespace std;
void removezero(vector<int>& a){
	while(a.size()>1&&a[0]==0){
		a.erase(a.begin());
	}
}
bool cmp(vector<int>& nums1,vector<int>& t){
	if(nums1.size()!=t.size()){
		return nums1.size()>t.size();
	}
	else{
		for(int i=0;i<nums1.size();i++){
			if(nums1[i]!=t[i]){
				return nums1[i]>t[i];
			}
		}
	}
	return true;
}
void sub(vector<int>& nums1,vector<int>& t){
	int temp=0;
	for(int i=nums1.size()-1,j=t.size()-1;i>=0;i--,j--){
		temp=nums1[i]-temp;
		if(j>=0){
			temp=temp-t[j];
		}
		if(temp<0){
			nums1[i]=temp+10;
			temp=1;
		}
		else{
			nums1[i]=temp;
			temp=0;
		}
	}
	removezero(nums1);
}
void solve(){
	string s1;
	string s2;
	cin>>s1>>s2;
	vector<int>nums1,nums2;
	int len=s1.size()-s2.size()+1;
	vector<int>nums3(len,0);
	for(int i=0;i<s1.size();i++){
		nums1.push_back(s1[i]-'0');
	}
	for(int i=0;i<s2.size();i++){
		nums2.push_back(s2[i]-'0');
	}
	removezero(nums1);
	removezero(nums2);
	if(!cmp(nums1,nums2)){
		cout<<0<<endl;
		return;
	}
	
	for(int i=len-1;i>=0;i--){
		vector<int>t=nums2;
		for(int j=0;j<i;j++){
			t.push_back(0);
		}
		while(cmp(nums1,t)){
			sub(nums1,t);
			nums3[len-i-1]++;
		}
	}
	removezero(nums3);
	for(int i=0;i<nums3.size();i++){
		cout<<nums3[i];
	}
	cout<<endl;
	
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int T=1;
//	cin>>T;
	while(T--){
		solve();
	}
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1622.497 ms420 KBAcceptedScore: 100


Judge Duck Online | 评测鸭在线
Server Time: 2026-09-20 13:16:03 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠