Josephus Permutation
Здравейте колеги, някой дали е решил задачата да бутне едно рамо?
Условие:
You are now to create a program that prints a Josephus permutation, receiving two lines of code (the list itself (string with elements separated by a single space) and a number k) as if they were in a circle and counted out every k places until none remained.
Моето решение което дава 60/100, а пък резултатите са ми верни
circle = input().split(' ')
kill_count = int(input())
result = []
circle_int = []
counter = 0
# making str circle into int
for i in circle:
    circle_int.append(int(i))
while len(circle_int) >= 1:
    # adding killed man to result list
    for i in circle_int:
        counter += 1
        if counter % kill_count == 0:
            result.append(i)
    # removing killed man from the circle
    for i in result:
        if i in circle_int:
            circle_int.remove(i)
print(str(result).replace(' ', ''))
        
Благодаря !
Здравейте MartinBG, можете ли да обясните последния ред какво точно се случва?
Виждам че като се опитам да
print(",".join(str(result))) ми излиза като резултат: [,3,,, ,6,,, ,2,,, ,7,,, ,5,,, ,1,,, ,4,]Не разбирам защо се получава но когато напиша последния ред като вас се получава
Може ли да обясните защо?
@MartinBG, супер е написан кода, само дали можеш да кажеш, какво точно правиш с .replace('\'', '')? Забелязах, че ако го няма този втория реплейс, output-a e лист от стрингове, но не разбирам как този реплейс каства към int 0.o ... Какво пропускам? Без '\':
['3','6','2','7','5','1','4']
С него джъджа вече дава 100% :
[3,6,2,7,5,1,4]