Задание для выполнения, включая индивидуальное задание



Разработайте рекурсивную функцию или процедуру для решения задачи.

Расставьте 8 ферзей на шахматной доске размером 8 X 8. Найдите хотя бы одну расстановку и выведите результат в виде последовательности из 8 символов, указав номер строки каждого ферзя (например, 24683175).

Текст программы

<?php

$board = array_fill(0, 8, array_fill(0,8,0));

function showBoard(){

global $board;

for($a = 0; $a < 8; ++$a){

for($b = 0; $b < 8; ++$b){

if($board[$a][$b]==1) echo $b;

}}}

function tryQueen($a, $b){

global $board;

for($i = 0; $i < $a; ++$i){

if($board[$i][$b]){

return false;

}}

for($i = 1; $i <= $a && $b-$i >= 0; ++$i){

if($board[$a-$i][$b-$i]){

return false;

}}

for($i = 1; $i <= $a && $b+$i < 8; $i++){

if($board[$a-$i][$b+$i]){

return false;

}}

return true;

}

function setQueen($a){

global $results_count, $board;

if($a == 8){

showBoard();

exit;

}

for($i = 0; $i < 8; ++$i){

if(tryQueen($a, $i)){

$board[$a][$i] = 1;

setQueen($a+1);

$board[$a][$i] = 0;

}}

return;

}

setQueen(0);

?>

Контрольный пример

Номер 2

Задание для выполнения, включая индивидуальное задание

Разработайте рекурсивную функцию или процедуру для решения задачи.

Для данного натурального числа от 2 до 20 распечатайте количество его различных разбиений на сумму натуральных слагаемых. Например, для числа 6 количество разбиений равно 11.

Текст программы

<form action="332.php" method="get">

<b>Введите число:</b><br>

<input type="text" name="a" /> <br>

<input type="submit" value="Ok" />

</form>

<?

$a=$_GET['a'];

if($a){

$k=0;

echo 'Вы ввели: '.$a.'</br>';

echo f1($a)+1;}

function f1($a,$start = 1) {

if ($a <= $start) {

return 0;

}

$count = floor($a / 2);

for ($res = 0, $i = $start; $i <= $count; ++$i) {

$res += 1 + f1($a - $i, $i);

}

return $res;

}

?>

Контрольный пример

При вводе числа 6 программа выведет число 11.

Номер 14

Задание для выполнения, включая индивидуальное задание

Разработайте рекурсивную функцию или процедуру для решения задачи.

Отсортируйте одномерный массив с помощью алгоритма бинарной пирамидальной сортировки.

Описание алгоритма программы, (при необходимости - со схемой алгоритма)

 

 

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

Имя переменной или объекта программы Тип данных Назначение
a int Хранит введённое число
k int Хранит количество сумм

Текст программы

Контрольный пример


 


Дата добавления: 2020-04-25; просмотров: 123; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!