Информатика 7 класс,питон
Дано число N. Определи, сколько раз придётся использовать оператор деления при его переводе в систему счисления с основанием m.
Анаконда
Звучит как загадка "Сколько будет весить луна если завтра понедельник?"
Здравствуйте, Насть.
При переводе числа N из 10-й системы счисления в систему счисления с основанием m нужно это число N делить на m.
Например, чтобы перевести число 24 в 2-ичную систему счисления, нужно сделать следующее:
1) 24 делим на 2 получаем в остатке 0, а в целой части 12
2) 12 делим на 2 и получаем в остатке 0, а в целой части 6
3) 6 делим на 2 и получаем в остатке 0, а в целой части 3
4) 3 делим на 2, получаем в остатке 1, а в целой части 1
5) 1 делить на 2 уже не нужно, потому что 1 меньше двух.
В итоге мы поделили число 24 на 2 четыре раза. И получили, что в двоичной системе это число 11000. То есть две первых единицы этого числа - это целая часть и дробная часть от деления 3 на 2, а три нуля - это остатки от делений 24 на 2, 12 на 2 и 6 на 2.
Вот ещё пример: N = 124, а m = 8. То есть число 124 нужно из 10-й системы счисления перевести в восьмеричную.
1) 124 делим на 8 и получаем 4 восьмых, 15 целых
2) 15 делим на 8 и получаем 7 восьмых, 1 целых.
3) 1 делить на 8 не нужно, потому что 1 меньше восьми
Собираем 8-ричное число: 174. И мы выполнили 2 деления. Ответ в этом примере - 2.
# Ввожу в программу N и m
N = int(input("N = "))
m = int(input("m = "))
# С - количество делений N на m
C = 0
# В R я храню текущее число,
# которое хочу делить на m
R = N
# Запускаю цикл, который работает
# пока текущее число больше m
while R > m:
# Выполняю деление на цело, то есть
# без дробной части
R = R // m
# Увеличиваю счётчик делений
C += 1
# Показываю результат на экране
print("Результат:", C)
Успехов Вам в учёбе!
чаво
Чтобы перевести число \( N \) в систему счисления с основанием \( m \), потребуется \( \lfloor \log_m(N) \rfloor + 1 \) делений.