0分求调!
查看原帖
0分求调!
1242083
zhukexv楼主2024/4/20 00:40
#include<bits/stdc++.h>
using namespace std;
int n,a[120],b[120],ans;
string m;
int fz(int j){
	for(int i=0;i<=j;i++){
		b[j-i]=a[i];
	}
	int z=119;
	while(b[z]==0) z--;
	return z;
}
int add(int n){
	for(int i=0;i<120;i++){
		a[i]+=b[i];
		a[i+1]+=(a[i]/n);
		a[i]%=n;
	}
}

int pd(){
	int len=119,f=1;
	while(a[len]==0) len--;
	for(int i=0;i<len;i++){
		if(a[i]!=a[len-i]){
			f=0;
			break;
		}
	}
	if(f) return 1;
	else return 0;
}
int one(int n,int j){
	while(1){
		ans++;
		j=fz(j);
		add(n);
		if(pd()==1){
			break;
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=0;i<m.size();i++){
		a[i]=m[i]-'0';
	}
	one(n,m.size()-1);
	if(ans<=30) printf("STEP=%d",ans);
	else cout<<"Impossible!";
	return 0;
}
2024/4/20 00:40
加载中...