<?php
//Вводим количество учеников и количество слогов в считалке
$numberOfStudents = 30;
$numberOfSyllables = 5;
//Создаем массив, ключи которого соответствуют номеру ученика, а значение (1 или 0) укажет, остается ли ученик в числе претендентов
//на похавать, или идет мести двор
$arrayForSyllables = array_fill(1, $numberOfStudents, 1); //Создадим переменную с текущим положением слога в считалке и переменную с количеством учеников в круге
$syllable = 0;
$studentsInCircle = 0;
//Создаем цикл, который начинается с расстановки в круг всех учеников и продолжается до тех пор, пока количество учеников будет
//больше или равно количеству слогов в считалке
for ($studentsInCircle = $numberOfStudents; $studentsInCircle >= $numberOfSyllables;) {
//Перебираем элементы массива
foreach ($arrayForSyllables as $numberPosition => &$eatCake) {
//Проверяем, остались ли неиспользованные слоги в считалке после последнего прохода по кругу. Если да- продолжаем считалку
//со слого $syllable, добавляя по слогу на каждого оставшегося в круге ученика
if ($syllable != 0 and $eatCake == 1) {
$syllable++;
} elseif
//Если остатка слогов нет, просто начинаем считалку, добавляя по слогу на каждого оставшегося в круге ученика
($eatCake == 1) {
$syllable++;
}
//Если номер слога совпадает с количеством слогов в считалке, выгоняем ученика из круга (присваиваем $eatCake 0)
// и обнуляем считалку
if ($syllable == $numberOfSyllables) {
$eatCake = 0;
$syllable = 0;
}
}
//Теперь посчитаем, сколько у нас осталось учеников в круге для проверки условия на следующей итерации
$studentsInCircle = 0;
foreach ($arrayForSyllables as $n) {
if ($n != 0) {
$studentsInCircle++;
}
}
}
//После выполнения цикла проходим по массиву и выписываем тех, кто остался в круге
$winnerPosition='';
foreach ($arrayForSyllables as $numberPosition => $eatCake){
if ($eatCake==1){
$winnerPosition=$winnerPosition . $numberPosition . ", ";
}
}
echo "Выигрышные позиции: " . $winnerPosition;
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgovL9CS0LLQvtC00LjQvCDQutC+0LvQuNGH0LXRgdGC0LLQviDRg9GH0LXQvdC40LrQvtCyINC4INC60L7Qu9C40YfQtdGB0YLQstC+INGB0LvQvtCz0L7QsiDQsiDRgdGH0LjRgtCw0LvQutC1CiRudW1iZXJPZlN0dWRlbnRzID0gMzA7CiRudW1iZXJPZlN5bGxhYmxlcyA9IDU7Ci8v0KHQvtC30LTQsNC10Lwg0LzQsNGB0YHQuNCyLCDQutC70Y7Rh9C4INC60L7RgtC+0YDQvtCz0L4g0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YIg0L3QvtC80LXRgNGDINGD0YfQtdC90LjQutCwLCDQsCDQt9C90LDRh9C10L3QuNC1ICgxINC40LvQuCAwKSDRg9C60LDQttC10YIsINC+0YHRgtCw0LXRgtGB0Y8g0LvQuCDRg9GH0LXQvdC40Log0LIg0YfQuNGB0LvQtSDQv9GA0LXRgtC10L3QtNC10L3RgtC+0LIKLy/QvdCwINC/0L7RhdCw0LLQsNGC0YwsINC40LvQuCDQuNC00LXRgiDQvNC10YHRgtC4INC00LLQvtGACiRhcnJheUZvclN5bGxhYmxlcyA9IGFycmF5X2ZpbGwoMSwgJG51bWJlck9mU3R1ZGVudHMsIDEpOwovL9Ch0L7Qt9C00LDQtNC40Lwg0L/QtdGA0LXQvNC10L3QvdGD0Y4g0YEg0YLQtdC60YPRidC40Lwg0L/QvtC70L7QttC10L3QuNC10Lwg0YHQu9C+0LPQsCDQsiDRgdGH0LjRgtCw0LvQutC1INC4INC/0LXRgNC10LzQtdC90L3Rg9GOINGBINC60L7Qu9C40YfQtdGB0YLQstC+0Lwg0YPRh9C10L3QuNC60L7QsiDQsiDQutGA0YPQs9C1CiRzeWxsYWJsZSA9IDA7CiRzdHVkZW50c0luQ2lyY2xlID0gMDsKCi8v0KHQvtC30LTQsNC10Lwg0YbQuNC60LssINC60L7RgtC+0YDRi9C5INC90LDRh9C40L3QsNC10YLRgdGPINGBINGA0LDRgdGB0YLQsNC90L7QstC60Lgg0LIg0LrRgNGD0LMg0LLRgdC10YUg0YPRh9C10L3QuNC60L7QsiDQuCDQv9GA0L7QtNC+0LvQttCw0LXRgtGB0Y8g0LTQviDRgtC10YUg0L/QvtGALCDQv9C+0LrQsCDQutC+0LvQuNGH0LXRgdGC0LLQviDRg9GH0LXQvdC40LrQvtCyINCx0YPQtNC10YIKLy/QsdC+0LvRjNGI0LUg0LjQu9C4INGA0LDQstC90L4g0LrQvtC70LjRh9C10YHRgtCy0YMg0YHQu9C+0LPQvtCyINCyINGB0YfQuNGC0LDQu9C60LUKZm9yICgkc3R1ZGVudHNJbkNpcmNsZSA9ICRudW1iZXJPZlN0dWRlbnRzOyAkc3R1ZGVudHNJbkNpcmNsZSA+PSAkbnVtYmVyT2ZTeWxsYWJsZXM7KSB7CiAgICAvL9Cf0LXRgNC10LHQuNGA0LDQtdC8INGN0LvQtdC80LXQvdGC0Ysg0LzQsNGB0YHQuNCy0LAKICAgIGZvcmVhY2ggKCRhcnJheUZvclN5bGxhYmxlcyBhcyAkbnVtYmVyUG9zaXRpb24gPT4gJiRlYXRDYWtlKSB7CiAgICAgICAgLy/Qn9GA0L7QstC10YDRj9C10LwsINC+0YHRgtCw0LvQuNGB0Ywg0LvQuCDQvdC10LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC90YvQtSDRgdC70L7Qs9C4INCyINGB0YfQuNGC0LDQu9C60LUg0L/QvtGB0LvQtSDQv9C+0YHQu9C10LTQvdC10LPQviDQv9GA0L7RhdC+0LTQsCDQv9C+INC60YDRg9Cz0YMuINCV0YHQu9C4INC00LAtINC/0YDQvtC00L7Qu9C20LDQtdC8INGB0YfQuNGC0LDQu9C60YMKICAgICAgICAvL9GB0L4g0YHQu9C+0LPQviAkc3lsbGFibGUsINC00L7QsdCw0LLQu9GP0Y8g0L/QviDRgdC70L7Qs9GDINC90LAg0LrQsNC20LTQvtCz0L4g0L7RgdGC0LDQstGI0LXQs9C+0YHRjyDQsiDQutGA0YPQs9C1INGD0YfQtdC90LjQutCwCiAgICAgICAgaWYgKCRzeWxsYWJsZSAhPSAwIGFuZCAkZWF0Q2FrZSA9PSAxKSB7CiAgICAgICAgICAgICRzeWxsYWJsZSsrOwogICAgICAgIH0gZWxzZWlmCiAgICAgICAgLy/QldGB0LvQuCDQvtGB0YLQsNGC0LrQsCDRgdC70L7Qs9C+0LIg0L3QtdGCLCDQv9GA0L7RgdGC0L4g0L3QsNGH0LjQvdCw0LXQvCDRgdGH0LjRgtCw0LvQutGDLCDQtNC+0LHQsNCy0LvRj9GPINC/0L4g0YHQu9C+0LPRgyDQvdCwINC60LDQttC00L7Qs9C+INC+0YHRgtCw0LLRiNC10LPQvtGB0Y8g0LIg0LrRgNGD0LPQtSDRg9GH0LXQvdC40LrQsAogICAgICAgICgkZWF0Q2FrZSA9PSAxKSB7CiAgICAgICAgICAgICRzeWxsYWJsZSsrOwogICAgICAgIH0KICAgICAgICAvL9CV0YHQu9C4INC90L7QvNC10YAg0YHQu9C+0LPQsCDRgdC+0LLQv9Cw0LTQsNC10YIg0YEg0LrQvtC70LjRh9C10YHRgtCy0L7QvCDRgdC70L7Qs9C+0LIg0LIg0YHRh9C40YLQsNC70LrQtSwg0LLRi9Cz0L7QvdGP0LXQvCDRg9GH0LXQvdC40LrQsCDQuNC3INC60YDRg9Cz0LAgKNC/0YDQuNGB0LLQsNC40LLQsNC10LwgJGVhdENha2UgMCkKICAgICAgICAvLyDQuCDQvtCx0L3Rg9C70Y/QtdC8INGB0YfQuNGC0LDQu9C60YMKICAgICAgICBpZiAoJHN5bGxhYmxlID09ICRudW1iZXJPZlN5bGxhYmxlcykgewogICAgICAgICAgICAkZWF0Q2FrZSA9IDA7CiAgICAgICAgICAgICRzeWxsYWJsZSA9IDA7CiAgICAgICAgfQogICAgfQogICAgLy/QotC10L/QtdGA0Ywg0L/QvtGB0YfQuNGC0LDQtdC8LCDRgdC60L7Qu9GM0LrQviDRgyDQvdCw0YEg0L7RgdGC0LDQu9C+0YHRjCDRg9GH0LXQvdC40LrQvtCyINCyINC60YDRg9Cz0LUg0LTQu9GPINC/0YDQvtCy0LXRgNC60Lgg0YPRgdC70L7QstC40Y8g0L3QsCDRgdC70LXQtNGD0Y7RidC10Lkg0LjRgtC10YDQsNGG0LjQuAogICAgJHN0dWRlbnRzSW5DaXJjbGUgPSAwOwogICAgZm9yZWFjaCAoJGFycmF5Rm9yU3lsbGFibGVzIGFzICRuKSB7CiAgICAgICAgaWYgKCRuICE9IDApIHsKICAgICAgICAgICAgJHN0dWRlbnRzSW5DaXJjbGUrKzsKICAgICAgICB9CiAgICB9Cn0KLy/Qn9C+0YHQu9C1INCy0YvQv9C+0LvQvdC10L3QuNGPINGG0LjQutC70LAg0L/RgNC+0YXQvtC00LjQvCDQv9C+INC80LDRgdGB0LjQstGDINC4INCy0YvQv9C40YHRi9Cy0LDQtdC8INGC0LXRhSwg0LrRgtC+INC+0YHRgtCw0LvRgdGPINCyINC60YDRg9Cz0LUKJHdpbm5lclBvc2l0aW9uPScnOwpmb3JlYWNoICgkYXJyYXlGb3JTeWxsYWJsZXMgYXMgJG51bWJlclBvc2l0aW9uID0+ICRlYXRDYWtlKXsKICAgIGlmICgkZWF0Q2FrZT09MSl7CiAgICAgICAgJHdpbm5lclBvc2l0aW9uPSR3aW5uZXJQb3NpdGlvbiAuICRudW1iZXJQb3NpdGlvbiAuICIsICI7CiAgICB9Cn0KCmVjaG8gItCS0YvQuNCz0YDRi9GI0L3Ri9C1INC/0L7Qt9C40YbQuNC4OiAiIC4gJHdpbm5lclBvc2l0aW9uOw==