PKU2719番
さてと、適当気楽に最短コードを狙おう。
とりあえず自分の英語力が幼稚園児並しか無いと言う情けない理由で、
id:Ozy:20060320の中で問題文を真面目に読まずに出来そうな問題を選ぶ
......たぶん2719が一番楽だな。
というわけでネタばれ警報発令っと
入力は9進数の文字列。終端は0
出力は9進数の文字列に:に空白1文字そして10進数に変換した結果。
10進数以外の数字ってのは結構面倒そうに見えますが......
こういう時には非常に便利なstrtol様に活躍してもらいましょう。
strtolは基数指定が出来るので9進数の変換も一瞬なのです。
......と言いたい所ですけど、入力の9進数は012356789といった4を飛ばした変則的な9進数なので変換が必要です。
char*p; main(n,s){ for(;n=atoi(gets(p=s)); printf("%d: %d\n",n,strtol(s,0,9))) for(;*p++-=*p>51;); }
sが微妙にバッファオーバーフローしてるような気がするけど、ちょっとだけだし大丈夫......かな?
あと、*p++-=*p>51の部分はコンパイラ依存なのでCとGCCで++する位置が変わります。