Форум » Кодирование и декодирование информации » Тема 8 задача 4253 » Ответить

Тема 8 задача 4253

ganilova: Решала двумя способами получается другой ответ, я неверно поняла условие задачи? Помогите разобраться! Вывод в условии, чтобы посмотреть какие числа получаются. [pre2] s = '246' a = '01234567' k = 0 for x1 in s: for x2 in a: for x3 in a: for x4 in '04': p = x1 + x2 + x3 + x4 if x1 >= x2 >= x3 >= x4: k += 1 print(p) print(k) [/pre2] [pre2] d = 8 ** 4 k = 0 while d > 511: d -= 4 p = oct(d) if p[2] in '246' and p[2] >= p[3] >= p[4] >= p[5]: k += 1 print(p) print(k) [/pre2]

Ответов - 3

Поляков: [pre2] count = 0 for a1 in range(6,1,-2): for a2 in range(a1,-1,-1): for a3 in range(a2,-1,-1): for a4 in range(a3,-1,-1): count += 1 print( count )[/pre2]

polyakovss: Другой вариант решения (хотя и менее красивый):[pre2] from itertools import product s = map(lambda x: ''.join(x), product('01234567',repeat=4)) L=[x for x in s if x[0] != '0' and int(x[0]) % 2 == 0 and all(x[k+1] <= x[k] for k in range(len(x)-1))] print(len(L))[/pre2]

ganilova: Решение то правильное было, но задачу не ту решала)) В соседней задаче было условие деления на 4, а я это условие реализовала в данной задаче, вот ответ и не получался))




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