№ 3. таблица стоимости перевозок устроена следующим образом: числа, стоящие на пересечениях строк и столбцов таблиц, обозначают стоимость проезда между соответствующими соседними станциями. если пересечение строки и столбца пусто, то станции не являются соседними. найдите путь, при котором стоимость проезда из а в е будет минимальной. какова эта минимальная стоимость? запишите её в ответ. стоимость проезда по маршруту складывается из стоимостей проезда между соответствующими соседними станциями. (постройте графическую модель, иллюстрирующую стоимость перевозок)
Да это самый удобный и наглядный Рисуем дерево вызовов. Понимаем, что если функция вызвалась с числом <=0, то печатается одна звезда, затем на этой ветке рекурсия останавливается. Если же функция вызвалась с параметром > 0, То печатается 2 звезды и возникают новые две ветки рекурсивных вызовов. Прилагаю рисунок, красными точками отмечены звезды, печатающиеся при конкретном вызове функции. ответо будет являться общее количество таких точек. Важно понять, что при наличии идентичных веток можно посчитать результат для такой ветки один раз и использовать его для других таких же.
ответ: 31.
Объяснение:
1)
begin
var (f, m) := readinteger2;
var s := 4 * sqr(f) - sqrt(25) + 12 * m;
write(s);
end.
2)
begin
var (z, h, n) := readinteger3;
var v := (2 * sqr(z) - 13) / (5 * h - 10) + abs(n - 25);
write(v);
writeln('Выполнил: ВАШЕ ФИО');
end.
Объяснение:
sqr(x) - возводит число х в квадрат;
sqrt(x) - вычисляет квадратный корень из числа x;
abs(x) - вычисляет модуль числа х.
1)
begin // Начало программы
var (f, m) := readinteger2; // Считываем с клавиатуры значения f и m
var s := 4 * sqr(f) - sqrt(25) + 12 * m; // Вычисляем выражение
write(s); // Выводим ответ
end. // Конец программы
2)
begin // Начало программы
var (z, h, n) := readinteger3; // Считываем с клавиатуры значения z, h и n.
var v := (2 * sqr(z) - 13) / (5 * h - 10) + abs(n - 25); // Вычисляем выражение
write(v); // Выводим ответ
writeln('Выполнил: ВАШЕ ФИО'); // Здесь вводите свое ФИО
end. // Конец программы