Форум » Выполнение и анализ алгоритмов для исполнителей » 5722 5 » Ответить

5722 5

Ar3turrr: Не вижу в чём ошибка. [pre2]def F(n, d): r = '' alf = 'ABCDEF' while n > 0: if n % d > 9: r = alf[ n % d - 10 ] + r else: r = str(n % d) + r n = n // d return r count = 0 for N in range(1000, 10000): N = str(N) x = N[ 1: ] if int(N[ 0 ]) % 4 == 0: x = '9' + x elif int(N[ 0]) % 2 == 0 and int(N[ 0]) % 4 != 0: x = '3' + x if x[ 0] == '9' and F(int(x), 8)[ -1] == '4': count += 1 print(count)[/pre2]

Ответов - 2

Aleksey6819: Ar3turrr пишет: Не вижу в чём ошибка. Вы не учитываете числа N, которые начинаются на 9 и у которых восьмеричная запись числа оканчивается цифрой 4. немного поправил вашу программу [pre2]count = 0 for N in range(1000, 10000): N = str(N) x = N[1:] if int(N[0]) % 4 == 0: x = '9' + x elif int(N[0]) % 2 == 0: x = '3' + x else: x=str(N) if x[0] == '9' and oct(int(x))[-1] == '4': count += 1 print(count)[/pre2]

Ar3turrr: Спасибо!



полная версия страницы