P1015 80分求调
查看原帖
P1015 80分求调
793341
xiaozeming楼主2025/6/20 13:26

测试点2不过,因为1年多没做题灰名了,下载不了数据

#include<bits/stdc++.h>
using namespace std;
int p[101],q[101],sum[101];
int n,step=0,len,c;
string m;
bool huiwen(int a[101]){
	for(int i=0;i<len;i++){
		if(a[i]!=a[len-i-1]){
			return false;
		}
	}
	return true;
}
void jisuan(){
	c=0;
	for(int j=0;j<101;j++){
		sum[j]=0;
	}
	for(int j=0;j<len;j++){
		q[j]=p[len-j-1];
	}
	for(int j=0;j<len;j++){
		sum[j]=(p[j]+q[j]+c)%n;
		c=(p[j]+q[j]+c)/n;
	}
	sum[len]=c;
	if(sum[len]!=0){
		len++;
	}
	step++;
	if(huiwen(sum)==true){
		if(step<=30){
			cout<<"STEP="<<step;
			return ;
		}
		else{
			cout<<"Impossible!";
			return ;
		}
	}
	else{
		for(int i=0;i<len;i++){
			p[i]=sum[i];
		}
		jisuan();
	}
	
}

int main(){
	cin>>n;
	cin>>m;
	len=m.size();
	for(int i=0;i<len;i++){
		p[i]=m[len-i-1]-48;
	}
	jisuan();
	return 0;
}
2025/6/20 13:26
加载中...