shluhiNovokrai
10.06.2021 22:09

Написать программу на С++ Исполнитель умеет выполнять два действия: "+1", "*2".
Составьте программу получения из числа 1 числа 100 за наименьшее
количество операций.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Aelly
16.02.2023 12:40
Program chisla;
uses crt;
var a,b : integer;
begin
Write('Введите два числа: ');
Read(a,b);
if (a>=0) and (a<=999) and (b>=0) and (b<=999) then
begin
if (a>=100) and (a<=999) then writeln(a);
if (b>=100) and (b<=999) then writeln(b);
if (a>=10) and (a<=99) then writeln(' ',a);
if (b>=10) and (b<=99) then writeln(' ',b);
if (a>=0) and (a<=9) then writeln(' ',' ',a);
if (b>=0) and (b<=9) then writeln(' ',' ',b);
end
else
Writeln('Нужно ввести числа от 0 до 999');
end.
0,0(0 оценок)
Ответ:
nmedvedeva20018
08.01.2023 17:22
Решение можно получить, рассуждая следующим образом.
Максимальное количество возможных сложений равно количеству команд и это дает в результате 1+1+1+1+1+1=6, но никак не 45. Разница большая, поэтому её надо преодолевать пр умножения.
Пойдем от обратных операций - будем из 45 получать 1 путем деления на 3 и вычитания 1.
1) 45/3=15 2) 15/3=5 3) 5 на 3 не делится, вычитаем 1 и получаем 4. 4) 4 на 3 не делится, вычитаем 1 и получаем 3. 5) 3/3=1 - мы пришли к 1 за 5 команд.
Теперь осталось записать в обратном порядке команды калькулятора.
Мы должны получить следующие шаги: 1) 1х3=3 2) 3+1=4 3) 4+1=5 4)5х3=15 5) 15х3=15.
ответ: 21122
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота