見出し画像

ABC171 C問題

要約

問題文からなんとなく26周期で変化していくことがつかめる.

26進数を考えればいいのかと考えるが,上手く合わない.

原因は0がないから.

つまり26進数だったら,26 = 10(26)となる.今回は26 = z となり微妙に端がずれてくる.しばらく考えて,とりあえず26で割った余りに注目して,Nを26ずつ割って行けば突破口が見えそうだと思い始める.

結局,例えば 1 % 26 = 1 = a のように0 = aとならないずれがこの26進数のときとのずれを引き起こすことが分かる.

そのため,N = N -1 と毎ループすることで対応する文字と合う.


N = int(input())
char = "abcdefghijklmnopqrstuvxywz"
ans = ""
N = N - 1
while( N >= 0):
 ans += char[N % 26]
 N = N //26
 N = N-1
 #print (ans)
print(ans)

この記事が気に入ったらサポートをしてみませんか?