|
|||
Контрольный пример. Задание для выполнения. Текст программы с комментариями. Контрольный пример. Задание для выполнения. Текст программы с комментариями. Контрольный пример5. Контрольный пример
Задание 3.1 1. Задание для выполнения Расставьте 8 ферзей на шахматной доске размером 8 ´ 8. Найдите хотя бы одну расстановку и выведите результат в виде последовательности из 8 символов, указав номер строки каждого ферзя (например, 24683175).
2. Текст программы с комментариями <?php const size = 8; $queen = [0, 0, 0, 0, 0, 0, 0, 0];
function out() { global $queen; foreach ($queen as $item) { echo $item + 1; } }
function decision($n = 0) { if ($n >= size) { out(); exit; } global $queen; for ($i = 0; $i < size; ++$i) { for ($j = 0; $j < $n; $j++) if ($queen[$j] == $i || abs($queen[$j] - $i) == $n - $j) { break; } if ($j == $n) { $queen[$n] = $i; decision($n + 1); } } } decision(); 3. Контрольный пример
Задание 3.2 1. Задание для выполнения Для данного натурального числа от 2 до 20 распечатайте количество его различных разбиений на сумму натуральных слагаемых. Например, для числа 6 количество разбиений равно 11.
2. Текст программы с комментариями <form method="get"> Введите число: <br> <input type="number" name="n"/> <br> <input type="submit" value="Отправить"/> </form> <?php function check($n, $k) { if ($k == 0) { if ($n == 0) { return 1; } else { return 0; } } if ($k > $n) { return check($n, $n); } else { return check($n, $k - 1) + check($n - $k, $k); } }
if (!isset($_GET['n'])) { return; } echo check($_GET['n'], $_GET['n']); 3. Контрольный пример
Задание 3.18
|
|||
|