Укажите наименьшее четырехзначное восьмеричное число, двоичная запись которого содержит 5...

0 голосов
252 просмотров

Укажите наименьшее четырехзначное восьмеричное число, двоичная запись которого содержит 5 единиц. В ответе запишите только само восьмеричное число,основание системы счисления указывать не нужно. если можно с объяснением


Информатика Начинающий (130 баллов) | 252 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Код программы ruby
for i in "1000".to_i(8).."7777".to_i(8)
    s = i.to_s(2)
    k = 0
    s.chars.each {|c| k += 1 if c == "1"}
    if (k==5)
        p [i, i.to_s(8), s, k]
        break
    end
end

Вывод
[527, "1017", "1000001111", 5]

Ответ
1017

Если решать аналитически, то наверное это делается методом подбора плюс быстрым переводом восьмеричной системы в двоичную (каждая цифра 8чной переводится в 3 цифры 2чной, можно заранее посчитать кол-во единиц для каждой). Сразу понимаем что в числах 1000-1016 будет слишком мало единиц, только "7"_8 переводится в "111"_2. И еще две единицы дают "1"_8


Доцент (53.1k баллов)
10,984,878 вопросов
13,471,016 ответов
8,518,553 комментариев
4,909,216 пользователей