2) (В2)Исполнитель КАЛЬКУЛЯТОР имеет только две команды, которым присвоены номера:1....

0 голосов
131 просмотров
2) (В2)Исполнитель
КАЛЬКУЛЯТОР имеет только две команды, которым присвоены номера:


1.
Прибавь
1


2.
Умножь
на 2


Выполняя
команду номер 1, КАЛЬКУЛЯТОР прибавляет к числу на экране 1, а выполняя

команду номер 2, умножает число на экране на 2.
Укажите минимальное число команд, которое должен выполнить исполнитель, чтобы
получить из числа 17 число 729.

Информатика (78 баллов) | 131 просмотров
Дан 1 ответ
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=s
    end
end
p min

"1111121212221"



(53.1k баллов)