大佬求助
查看原帖
大佬求助
780416
baojiaming01楼主2023/6/3 19:23
#include<bits/stdc++.h>
using namespace std;
int n;
string m;
int ans;
int t;
int huiwen(string s)
{
	string s1=s;
	reverse(s1.begin(),s1.end());
	if(s==s1) return 1;
	else return 0;
}
int zhuanhuan1(char x)
{
	if(x>='0' && x<='9') return x-'0';
	else
	{
		if(x=='A') return 10;
		else if(x=='B') return 11;
		else if(x=='C') return 12;
		else if(x=='D') return 13;
		else if(x=='E') return 14;
		else if(x=='F') return 15;
	}
}
char zhuanhuan2(int x)
{
	if(x>=0 && x<=9)return x+'0';
	else
	{
		if(x==10) return 'A';
		else if(x==11) return 'B';
		else if(x==12) return 'C';
		else if(x==13) return 'D';
		else if(x==14) return 'E';
		else if(x==15) return 'F';
	}
}
string jiafa(string s,string s1)
{
	reverse(s.begin(),s.end());
	reverse(s1.begin(),s1.end());
	int a[101],b[101],c[101];
	for(int i=0; i<=s.size()-1; i++) a[i]=zhuanhuan1(s[i]);
	for(int i=0; i<=s1.size()-1; i++) b[i]=zhuanhuan1(s1[i]);
	int len=max(s.size()-1,s1.size()-1);
	for(int i=0; i<=len; i++)
	{
	    c[i]=a[i]+b[i]+c[i];
	    c[i+1]=c[i]/10;
	    c[i]=c[i]%10;
	}
	len++;
	while(c[len]==0 && len>0) len--;
	for(int i=len; i>=0; i--) s[i]=zhuanhuan2(c[i]);
	return s;
}  
int main()
{
	cin>>n>>m;
	t=huiwen(m);
	while(t==0)
	{
		if(ans>30)
		{
			cout<<"Impossible!";
			return 0;
		}
		ans++;
		m=jiafa(m,m);
		t=huiwen(m);
	}
	cout<<"STEP="<<ans;
	return 0; 
}

蒟蒻看的题解

2023/6/3 19:23
加载中...