Ada pertanyaan di situs ini yang mirip dengan pertanyaan ini, tetapi saya telah menambahkan twist.
Anda memiliki tiga input, jumlah orang dalam lingkaran n , orang ke- k yang dihitung pada setiap langkah, dan orang ke- q yang bertahan. Orang-orang di lingkaran diberi nomor 1 hingga n .
Sebagai contoh, dalam lingkaran 20 orang, orang ke 20 yang bertahan adalah orang pertama yang dipindahkan, orang yang selamat ke 19 adalah orang kedua yang dipindahkan dan seterusnya. Biasanya, masalah Yosefus adalah menentukan orang terakhir yang dipindahkan, di sini disebut korban pertama .
Tuliskan program atau fungsi terpendek yang, dengan tiga input itu, mengembalikan jumlah orang ke - q untuk bertahan hidup.
Jika ada masalah dengan kejelasan, harap beri tahu saya.
Beberapa contoh:
>>> josephus(20, 3, 9)
4
>>> josephus(4, 3, 1)
1
>>> josephus(100, 9, 12)
46
Sunting: Asumsikan semua input valid. Itu tidak ada yang akan meminta 0 atau angka negatif dan tidak ada yang akan meminta 20 orang yang selamat dalam lingkaran 5 orang (yaitu, 1 ≤ q ≤ n)
Sunting: Saya akan menerima jawaban pada tengah malam UTC + 7 pada awal 2 Desember.
q=1ini persis sama dengan pertanyaan Josephus yang terhubung, kan?
