救救我
查看原帖
救救我
785583
Hanxiaoyang楼主2024/8/13 16:44
#include<bits/stdc++.h>

using namespace std;

int sum=0;

bool hui(string s){

	int zo = 0,you = s.size()-1;
    
	while(zo<you){
    
		if(s[zo]!=s[you]) return false;
        
		zo++;you--;
        
		}
    
	return true;
    
}

int zhuan1(char ss){

	 if(ss>='A'&&ss<='Z') return ss-'A'+10;
     
	 else return ss-'0';
     
}
char zhuan2(int sss){

	if(sss<10) return sss+'0';
    
	else return sss+'A'-10;
    
}
string gao(string s1,int c1){

	string a1,b1;
    
	for(int i = 0;i<s1.size();i++){
    
		a1[i] = s1[i];
        
		b1[i] = s1[s1.size()-1-i];
        
	}
    
	int c[1005] = {0},len = s1.size();
    
	for(int i = 0;i<s1.size();i++){
    
		c[i] += zhuan1(a1[i])+zhuan1(b1[i]);
        
		c[i+1] += c[i]/c1;
        
		c[i] %= c1;
        
	} 
    
	if(c[s1.size()]) len++;
    
	for(int i = 0;i<len;i++){
    
		s1[i] = zhuan2(c[i]);
        
	}
    
	return s1;
    
}

int main(){

	int a;
    
	string b;
    
	cin>>a>>b;
    
	cout<<gao(b,a);
    
	while(!hui(b)){
    
		gao(b,a);
        
		sum++;
        
		if(sum>30){
        
			break;
            
		}
        
	}
    
	if(sum<=30){
    
		cout<<"STEP="<<sum;
        
	}
    
	else{
    
		cout<<"Impossible!";
        
	}
    
	return 0;
    
}
2024/8/13 16:44
加载中...