最后一个点RE,求助
查看原帖
最后一个点RE,求助
671482
slry666楼主2023/8/28 17:28

代码如下

#include<iostream>
#include<cstdio>
#include<bits/stdc++.h>
using namespace std;
long long step,l,n,f;
string m,a;
void one(){
	for(int i=0;i<l;++i)a[l-i-1]=m[i];
	l+=2;
	for(int i=0;i<l;i++){
		m[i]+=a[i];
		if(m[i]>=n) {
			m[i+1]++;
			m[i]-=n;
		}
	}while(!m[l-1]) --l;
}int check(){
	for(int i=0;i<l;i++){
		if(m[i]!=m[l-i-1]) return true;
	}return false;
}
int main(){
	cin>>n>>m;
	l=m.length();
	for(int i=0;i<l;i++){
		if(m[i]>='0'&&m[i]<='9') m[i]-='0';
		else m[i]=m[i]-'A'+10;
	}while(check()){
		++step;
		if(step>30){
			f=1;
			break;
		}one();
	}if(f==0) cout<<"STEP="<<step;
	else printf("Impossible!");
	return 0;
} 
2023/8/28 17:28
加载中...