求助大佬!RE与TLE
查看原帖
求助大佬!RE与TLE
292653
tyzc114514楼主2022/9/17 22:27

(已查资料,可解决不了)

#include<bits/stdc++.h> 
using namespace std;
bool cmp(string s1,string s2){
	if(s1.size()>s2.size()||s1.size()==s2.size()&&s1>=s2)
	return true;
	else return false;
}
int main(){
	string s1,s2,s;
	cin>>s1>>s2;
	int t=s1.size()-s2.size()+1;
	for(int i=t;i>=1;i--){  //减数变换的次数 
		s=s2;//要有多次填0
		for(int j=1;j<=i-1;j++)s+='0';//除数 
		int num=0;
		while(cmp(s1,s)){
			num++;
		//处理数据 
		int a[1001]={},b[1001]={},c[1001]={};
		int l1=s1.size(),l2=s.size();
		for(int j=0;j<l1;j++) a[l1-j+1]=s1[j]-'0';
		for(int j=0;j<l2;j++) b[l2-j+1]=s[j]-'0';
		//做减法 
		for(int j=1;i<=l1;j++) c[j]=a[j]-b[j];
		for(int j=1;j<=l1;j++){
			if(c[j]<0){
				c[j+1]--;
				c[j]+=10;
			}
		}
		//处理最高位 
		while(c[l1]==0 && l1>1){
			l1--;
		}
		s1="";
		for(int j=l1;j>=1;j--)
		s1+=(c[j]+'0');
	}
	cout<<num;
}
    return 0;  
}
2022/9/17 22:27
加载中...