求助!!!!!!全是“Impossible!”啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
查看原帖
求助!!!!!!全是“Impossible!”啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
601245
I_am_zhima楼主2022/3/12 14:56
#include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,ans,a[100005],aa[100005],l;
string s;
bool pd(int x[]){//ok 回文数 
	for(int i=1;i<=l/2;i++)
		if(x[i]!=x[l-i+1]) return 0;
	return 1;
}
void in(){//ok 把s字符串附到a数组里
	int j=0;
	for(int i=s.length()-1;i>=0;i--) {
		if(s[i]>='0'&&s[i]<='9')//数字 
			a[++j]=s[i]-'0';
		else//十六进制的
			a[++j]=s[i]-'A'+10;
	}
}
void turn(int a[]){//ok 反转数字
	int j=0;
	for(int i=l;i>=1;i--)
		aa[++j]=a[i];//存到aa数组里 
}
void add(int a[],int b[]){//ok 高精加 
	l=s.length();
	for(int i=1;i<=l;i++){
		a[i]+=b[i];
		a[i+1]+=a[i]/n;
		a[i]%=n;
	}
	if(a[l+1]>0) l++;
}
int main(){
	cin>>n>>s;
	in();
	l=s.length();
	while(!pd(a)){
		turn(a);
		add(a,aa);
		ans++;
		if(ans>30) break;
	}
	if(ans>30) cout<<"Impossible!";
	else cout<<"STEP="<<ans;
	return 0;
}
2022/3/12 14:56
加载中...