Top.Mail.Ru
Ответы

Информатика 7 класс,питон

Дано число N. Определи, сколько раз придётся использовать оператор деления при его переводе в систему счисления с основанием m.

По дате
По рейтингу
Аватар пользователя
Новичок
7мес

Анаконда

Аватар пользователя
Гуру
7мес

Звучит как загадка "Сколько будет весить луна если завтра понедельник?"

Аватар пользователя
Мудрец
7мес

Здравствуйте, Насть.
При переводе числа 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.

12345678910111213141516171819
 # Ввожу в программу 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) 
 

Успехов Вам в учёбе!

Аватар пользователя
Ученик
7мес

чаво

Аватар пользователя
Мыслитель
7мес

Чтобы перевести число \( N \) в систему счисления с основанием \( m \), потребуется \( \lfloor \log_m(N) \rfloor + 1 \) делений.