大佬求助,全RE了
查看原帖
大佬求助,全RE了
750869
Michael_Liu楼主2023/7/26 11:02
#include <bits/stdc++.h>
using namespace std;
bool f=false,flag=true;


string hui(string n) // 倒转 
{
	string t="";
	int len=n.size();
	for(int i=len-1;i>=0;i--)
	{
		t=t+n[i];
	}
	return t;
}


bool check(string n) // 判断是否为回文数 
{
	string t=hui(n);
	if(n==t)
	{
		return true;
	}
	else 
	{
		return false;
	}
}


int zci(char c) // 字符转整数 
{
	int num=0;
	if(c<='9'&&c>='0')
	{
		num=c-'0';
	}
	else
	{
		if(c>='A'&&c<='Z')
		{
			num=c-'A'+10;
		}
	}
	return num;
}


char zic(int n) // 整数转字符 
{
	char c;
	if(n>=0&&n<=9)
	{
		c='0'+n;
	}
	else
	{
		c='A'+(n-10);
	}
}


string jia(string a,string b,int n) // 字符串加法 
{
	a="0"+a;
	b="0"+b;
	string ans="";
	int len=a.size();
	int x=0,sum=0;
	int num1=0,num2=0;
	for(int i=0;i<=len-1;i++)
	{
//		cout<<len-i-1<<endl;
		num1=zci(a[len-i-1]);
		num2=zci(b[len-i-1]);
		sum=num1+num2+x;
		if(i==len-1)
		{
			if(sum==0)
			{
				break;
			}
		}
		ans=zic(sum%n)+ans;
		x=sum/n;
		sum=0;
	}
	return ans;
}


int main()
{
	int n,cnt=0;
	cin>>n;
	string s;
	cin>>s;
	string t1=s,t2="",sum="";
	while(!check(t1))
	{
		t2=hui(t1);
		sum=jia(t1,t2,n);
		t1=sum;
		cnt++;
		if(cnt>=30)
		{
			break;
			flag=false;
		}
	} 
	if(flag)
	{
		cout<<"STEP="<<cnt<<endl;
	}
	else
	{
		cout<<"Impossible!"<<endl;
	}
	return 0;
} 
2023/7/26 11:02
加载中...