Полезные фрагменты кода на языке Python

  1. Функция bin(). Возвращает строку вида '0b...', где '0b' – префикс двоичной записи. Чтобы получить строку без префикса, используйте bin(num)[2:].
  2. Функция oct(). Возвращает строку вида '0o...', где '0o' – префикс двоичной записи. Чтобы получить строку без префикса, используйте oct(x)[2:].
  3. Функция hex(). Возвращает строку вида '0h...', где '0h' – префикс двоичной записи. Чтобы получить строку без префикса, используйте hex(x)[2:]
  4. Функция int()  используется для преобразования значения в целое число. Она может принимать строку или число и возвращать эквивалентное целое число. 
  5. x%2==0 —  проверка переменной х на четность
  6. s.count(‘5’) — подсчитывает количество 5 в строке s.
  7. 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