25分求助 ACon#3
查看原帖
25分求助 ACon#3
999062
wangzixiao12345楼主2023/11/7 21:40
#include<bits/stdc++.h>
using namespace std;
int n;
string gaojing(string s1,string s2){
    int a[105],b[105],c[105];
	int lena=s1.size(),lenb=s2.size();
	int lenc=max(lena,lenb);
	for(int i=1;i<=lena;i++){
		a[i]=s1[lena-i]-'0';
	}	
	for(int i=1;i<=lenb;i++){
		b[i]=s2[lenb-i]-'0'; 
	}
	int m=0;
	for(int i=1;i<=lenc;i++){
		c[i]=(m+a[i]+b[i])%10;
		m=(m+a[i]+b[i])/10;
	}
	if(m){
		lenc++;
		c[lenc]=1;
	}
	for(int i=lenc;i>=1;i--){
		if(c[i]==0){
			lenc--;
		}else{
			break;
		}
	}
	string ans;
	for(int i=lenc;i>=1;i--){
		ans+=char(c[i]+48);
	}
	return ans;
}

int main(){
	string s,t;
	cin>>n>>s;
	for(int i=0;i<s.length();i++){
		if(s[i]<='Z'&&s[i]>='A'){
			s[i]=s[i]-'A'+'0'+10;
		}
	}
	t=s;
	reverse(t.begin(),t.end());
	if(s==t){
	    cout<<"STEP=0";
	    return 0;
	}
	int step=0;
	while(step<=30){
		step++;
		s=gaojing(s,t);
		t=s;
		reverse(t.begin(),t.end());
		if(t==s){
		    cout<<"STEP="<<step;
		    return 0;
		}
	}
	cout<<"Impossible!";
	return 0;
}
2023/11/7 21:40
加载中...