萌新求助
  • 板块学术版
  • 楼主kUn_kUn
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/3/13 18:35
  • 上次更新2023/10/23 21:39:40
查看原帖
萌新求助
791442
kUn_kUn楼主2023/3/13 18:35

代码如下:

#include <bits/stdc++.h>
using namespace std;
int main(){
    int p=1,ans=0,i,j,n,x,g=0,gm=0,a[105],b[105];
    char c[105];
    scanf("%d",& n);
    scanf("%s", c);
    j=0;
while(c[j]!=0){
    if((c[j]>='0')&&(c[j]<='9'))a[j+1]=c[j]-'0';
    else a[j+1]=c[j]-'A'+10; j++;
    
    }
while(ans<=30){
    g=0;
    i=1;
while(i<=j){
    x=a[j-i+1]+a[i]+g;
    g=x/n;
    b[j-i+1]=x%n;
    i++;
	}
if(g!=0) b[0]=g;
if(g!=0){
for(i=1;i<=j+1;i++){
	a[i]=b[i-1];
	}
    j++;
    }
else for(i=1;i<=j;i++){
    	a[i]=b[i];
    }
    ans++;
    i=1;
    gm=j;
    p=1;
while(i<=gm){
if(a[i]!=a[gm])p=0;
    i++;
    gm--;
	}
if(p){
	cout<<"STEP=%d"<<ans;
	return 0;
	}
	}
    cout<<"Impossible!";
    return 0;
}

传送门

2023/3/13 18:35
加载中...