Опубликовано 03.01.2018 по предмету Информатика от Гость

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


1.
Прибавь
1


2.
Умножь
на 2


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

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

Ответ оставил Гость

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"



Не нашел нужный ответ?

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.


Найти другие ответы
Самые новые вопросы