[白俊2292]ハニカム


🔴 質問する



🟢 に答える


1号室を中心に、2号室から7号室までが2号室、8号室から19号室までが3号室の場合、N号室に着いたときに通る部屋の数は、N号室がある部屋の部屋のケース番号と同じです.
シェルの番号を調べるために、シェルの最後の部屋の番号を見るとルールが見えます.
1号ケースの1号
シェル2号の7号
3番ケースの19番
4番ケースの37番
5番ケースの61番
.
.
.
このように、ハウジング番号がnの場合、次のハウジングの最後の部屋の番号がn*6であることがわかり、1つ増えるごとに!
説明は少し長いですが、コードは短いです.
import sys

N = int(sys.stdin.readline())

end = 1 # 마지막 방의 번호
step = 1 # 껍질의 번호
while True:
    if N <= end:
        print(step)
        break
    end += step*6
    step += 1