2

061wangdaoxuan 2020-11-07 10:34:48 12 返回题目

#include<bits/stdc++.h> using namespace std; string s; int n,a[600],b[600],len,step; void init(){ for(int i=0;i<len;i++){ if(s[len-i-1]>='A'&&s[len-i-1]<='F'){ a[i]=s[len-i-1]-'A'+10; }else a[i]=s[len-i-1]-'0'; } } bool check(){ for(int i=0;i<len;i++){ if(a[i]!=a[len-1-i]) return false; } return true; } void my_add(){ for(int i=0;i<len;i++) b[i]=a[len-i-1]; for(int i=0;i<len;i++){ a[i]+=b[i]; a[i+1]+=a[i]/n; a[i]%=n; } if(a[len]) len++; } int main(){ cin>>n>>s; len=s.size(); init(); while(step<=30){ if(check()){ cout<<"STEP="<<step; return 0; } my_add(); step++; } cout<<"Impossible!"; return 0; }

{{ vote && vote.total.up }}