Проблема с циклом While

swift
playground
swift3
xcode

#1

При работе цикла While выдаёт ошибку “error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)”. Если цикл закомментировать, функция работает исправно. Подскажите пожалуйста решение, ничего похожего не нашел.

import UIKit

func josephusSurvivor(_ n: Int, _ k: Int) -> Int {

var kol: Int = 1
var people: [Int] = []
while kol <= n{
    people.append(kol)
    kol += 1
}

kol = 2

while people.count >= 1{
_ = people.remove(at: kol)
kol += 2

   if kol >= people.count{
       kol -= people.count
   }
}

return  people[0]
}

#2

Бесконечный цикл запускаешь


#4

спасибо большое, сильно помогли


#5

Поправка. Пытаешься удалить элемент из массива по несуществующему индексу.


#6

Почему индекс несуществующий? Там же указана переменная kol


#7

при people.count равным 1, 2 будет ошибка, тк удаляя элемент с индексом 2, это значит, что как минимум в массиве должно быть 3 элемента.