Предмет: Информатика,
автор: ychenik888
2) (В2)Исполнитель
КАЛЬКУЛЯТОР имеет только две команды, которым присвоены номера:
1.
Прибавь
1
2.
Умножь
на 2
Выполняя
команду номер 1, КАЛЬКУЛЯТОР прибавляет к числу на экране 1, а выполняя
команду номер 2, умножает число на экране на 2.
Укажите минимальное число команд, которое должен выполнить исполнитель, чтобы
получить из числа 17 число 729.
Ответы
Автор ответа:
0
m = []
n=20
base=2
for i in 0...(base**n)
bin = i
m[i]=[]
for j in 0...n
m[i][j] = bin % base
bin/=base
end
end
start = 17
stop=729
min="22222222222222222222222222"
s=""
m.each do |ops|
num = start
s=""
ops.each do |op|
if op==0
num+=1
s+="1"
else
num*=2
s+="2"
end
if num >= stop then break end
end
# if (num == stop) then p s end
if (num == stop) and (s.size<min.size) then
min=s
end
end
p min
"1111121212221"
n=20
base=2
for i in 0...(base**n)
bin = i
m[i]=[]
for j in 0...n
m[i][j] = bin % base
bin/=base
end
end
start = 17
stop=729
min="22222222222222222222222222"
s=""
m.each do |ops|
num = start
s=""
ops.each do |op|
if op==0
num+=1
s+="1"
else
num*=2
s+="2"
end
if num >= stop then break end
end
# if (num == stop) then p s end
if (num == stop) and (s.size<min.size) then
min=s
end
end
p min
"1111121212221"
Похожие вопросы
Предмет: Геометрия,
автор: srzzangwka
Предмет: Математика,
автор: vlvv7173
Предмет: Математика,
автор: abaidullaevakamiliam
Предмет: Литература,
автор: DianaKlas
Предмет: Биология,
автор: maxwi