1546 Basically Speaking
問題概要
a進数で表現された数nが与えられる。これをb進数へ変換せよ。
ただし結果が7桁に収まらない場合はERRORを出力せよ。
解法
昔WA貰ってた奴。基数変換やるだけなのに何故……
ソースコード
ll mx[17],from; char in[9]; int a,b; int main() { rep(i,17) { mx[i]=1; rep(j,7)mx[i]*=i; } while(~scanf("%s%d%d",in,&a,&b)) { from=0; for(int i=0;in[i];i++) { from*=a; if(isdigit(in[i]))from+=in[i]-'0'; else from+=in[i]-'A'+10; } if(from>=mx[b])puts(" ERROR"); else { int d=0; for(;from;from/=b,d++) { if(from%b>9)in[d]=from%b-10+'A'; else in[d]=from%b+'0'; } in[d]=0; reverse(in,in+d); printf("% 7s\n",in); } } return 0; }