Главная /
Программирование на языке Pascal /
Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы ч
Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа 18 32 5 5 6 2 78 4 56 5 2
. При какой глубине стека контекстов произойдет завершение работы программы (обращение к завершающей процедуре out()
)?
{массив а хранит веса всех предметов, в порядке их ввода,
half - "большая" половина суммы всех весов,
dif - отклонение текущей найденной суммы от half}
procedure rec(k: byte; sum: longint; var dif: longint);
var i: byte;
begin if sum+a[k]<=half
then for i:= k+1 to n do rec(i,sum+a[k],dif)
else if half-sum<dif
then begin
dif:= half-sum;
if dif<2 then out(dif){печать и завершение}
end
end;
вопрос
Правильный ответ:
0
1
5
9
11
Сложность вопроса
69
Сложность курса: Программирование на языке Pascal
75
Оценить вопрос
Комментарии:
Аноним
спасибо за ответ
25 июн 2020
Аноним
Это очень элементарный решебник intuit.
08 янв 2019
Аноним
Я сотрудник деканата! Тотчас уничтожьте сайт vtone.ru с ответами интуит. Не ломайте образование
14 мар 2016
Другие ответы на вопросы из темы программирование интуит.
- # Двусвязный линейный список задан указателем на голову head и указателем на хвост tail. Какой оператор необходимо вставить вместо [???], чтобы приведенный ниже отрывок программы правильно удалял из этого списка все элементы со значением 0?{type ssylka = ^spisok; spisok = record znach: integer; next,prev: ssylka end; var head,p,q: ssylka; } while (head<>nil)and(head^.znach =0)do begin p:= head; head:= head^.next; dispose(p); end; if head<>nil then begin head^.prev:= nil; p:= head; while p^.next <> nil do if p^.next^.znach = 0 then begin q:= p^.next; p^.next:= q^.next; if p <> tail then [???]; dispose(q); end else p:= p^.next; end else tail:= nil;
- # Для того, чтобы скомпилировать все без исключения модули программы, нужно воспользоваться командой:
- # Какие процедуры и функции стандартного модуля Crt отвечают за позиционирование курсора в активной области ввода/вывода?
- # Какие из приведенных ниже описаний констант являются правильными с точки зрения Pascal-компилятора?
- # Динамическая структура данных, у которой в каждый момент времени доступен только последний элемент, причем добавлять и удалять элементы можно только на конце структуры, называется: