白駿11866号:ジョセフス問題0


質問する


題ショートカットキー>白駿11866号:ジョセフス問題0

に答える


モジュール化演算を用いて解いた.
N, K = map(int, input().split())
round_table = [i for i in range(1,N+1)]
idx=0
print('<', end='')
while len(round_table)!=0:
    if len(round_table)!=N:
        print(', ', end='')
    idx+=K-1
    idx %= len(round_table)
    print(round_table.pop(idx), end='')
print('>', end='')

コードの改良

    idx+=K-1
    idx %= len(round_table)
   
    # 아래와 같이 한줄로도 표현 가능
    idx=(idx+K-1)%len(round_table)
    round_table = [i for i in range(1,N+1)]
   
    # 아래와 같이도 표현 가능
    round_table = list(range(1, N+1))