Хелпикс

Главная

Контакты

Случайная статья





Задание для выполнения. Описание алгоритма программы. Описание переменных и структур данных, которые применяются в программе. Текст программы с комментариями



1. Задание для выполнения

Натуральные числа от 1 до N записаны по порядку и расставлены по кругу. Начиная с 1, вычеркивается каждое m-ое число (m, 2m, 3m, …). Процесс удаления чисел продолжается циклически по кругу до тех пор, пока не останется (m-1) число. Распечатайте их.

 

2. Описание алгоритма программы

Пусть n, m – вводимые числа

Заполним массив array возрастающей последовательностью и вызовем функцию func с аргументам array и m – 1. В функции func будет проходить массив array по кругу с помощью операции i += m. Чтобы не выходить за массив, будем проверять i> count(array) и изменять операцией i %= count(array). С помощью стандартной функции array_splice будем удалять элементы из массива. Если длина массива стала равна m – 1, то вернуть и вывести array, в противной случае – вызвать функцию ещё раз.

3.Описание переменных и структур данных, которые применяются в программе

Имя переменной или объекта программы Тип данных Назначение
n int Хранит первое вводимое число
m int Хранит первое вводимое число
array array Хранит массив чисел
func array Используется для удаления чисел из массива по алгоритму
i int Хранит позицию удаляемого элемента

4. Текст программы с комментариями

<form method="get">

Введите число:

<table>

   <tr>

       <td>n</td>

       <td><input type="number" name="n"/></td>

   </tr>

   <tr>

       <td>m</td>

       <td><input type="number" name="m"/></td>

   </tr>

</table>

<input type="submit" value="Отправить"/>

</form>

<?php

function func(&$array, $m, $i = 0){

$i += $m;

if ($i >= count($array)){

   $i %= count($array);

}

array_splice($array, $i, 1);

if (count($array) == $m){

       return $array;

}

else{

   return func($array, $m, $i);

}

}

if (!isset($_GET['n'], $_GET['m'])) {

return;

}

$array = [];

for ($i = 0; $i < $_GET['n']; ++$i){

$array[$i] = $i + 1;

}

$array = func($array, $_GET['m'] - 1);

foreach ($array as $item) {

echo $item, ' ';

}



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.