社区讨论

爆零求助,求大佬Debug

P2005A/B Problem II参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lvq6en0t
此快照首次捕获于
2024/05/03 12:29
2 年前
此快照最后确认于
2024/05/03 15:35
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
#define str string
#define MAXN 114514
using namespace std;
int a[MAXN],b[MAXN],c[MAXN];
str sa,sb;
bool da(int x[],int y[],int l,int r){
	if(x[l+r]) return true;
	for(int i=r;i>=l;--i){
		if(x[i]>y[i]) return true;
		if(x[i]<y[i]) return false;
	}
	return true;
}
int main(){
	cin>>sa>>sb;
	int la=sa.size(),lb=sb.size();
	for(int i=1;i<=la;++i) a[i]=sa[la-i]-'0';
	for(int i=1;i<=lb;++i) b[i]=sb[lb-i]-'0';
	for(int i=la-lb;i>=1;--i){
		while(da(a,b,i,lb)){
			++c[i];
			for(int j=0;j<lb;++j){
				a[j+i]-=b[j];
				if(a[j+i]<0){a[j+i+1]--;a[j+i]+=10;}
			}
		}
	}
	int i=la;
	for(;i>=1;--i) if(c[i]) break;
	if(!c[i]) cout<<0;
	for(;i>=1;--i) cout<<c[i];
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...