Полезные фрагменты кода на языке Python
- Функция
bin(). Возвращает строку вида'0b...', где'0b'– префикс двоичной записи. Чтобы получить строку без префикса, используйтеbin(num)[2:]. - Функция oct(). Возвращает строку вида
'0o...', где'0o'– префикс двоичной записи. Чтобы получить строку без префикса, используйте oct(x)[2:]. - Функция hex(). Возвращает строку вида
'0h...', где'0h'– префикс двоичной записи. Чтобы получить строку без префикса, используйте hex(x)[2:] - Функция int() используется для преобразования значения в целое число. Она может принимать строку или число и возвращать эквивалентное целое число.
- x%2==0 — проверка переменной х на четность
- s.count(‘5’) — подсчитывает количество 5 в строке s.
- s.count(‘5’)*5+s.count(‘4’)*4+s.count(‘3’)*3+s.count(‘2’)*2+s.count(‘1’) — сумма цифр в строке s
Пример задания:
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1) Строится двоичная запись числа N.
2) Если N кратно 5, то в конец двоичной записи числа дописываются три последние цифры числа. Иначе в конец двоичной записи числа дописывается остаток от деления n на 5,
умноженный на 4, в двоичной записи. Полученная таким образом запись является двоичной записью искомого числа R. Укажите минимальное число N, после обработки которого автомат получает число, большее 150. В ответе это число запишите в десятичной систем.
Посмотреть решение
for N in range(100): #перебирает все N от 0 до 99
Nb=bin(N)[2:] #строит двоичную запись числа N
if N%5 == 0: #проверяет число N на кратность 5
Nb += Nb[-3:] #если N кратно 5, то в конец двоичной записи числа дописываются три последние цифры
else: #иначе
Nb += bin((N%5)*4)[2:] #в конец двоичной записи числа дописывается остаток от деления на 5, умноженный на 4
R = int(Nb,2) #переводит в десятичную систему счисления
if R > 150:
print(N)
break
Ответ:7665