Автор | Сообщение |
|
Отправлено: 16.10.21 11:22. Заголовок: Тема 8 задача 4253
Решала двумя способами получается другой ответ, я неверно поняла условие задачи? Помогите разобраться! Вывод в условии, чтобы посмотреть какие числа получаются. 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) 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)
|
|
|
Ответов - 3
[только новые]
|
|
|
| Администратор
|
Сообщение: 2952
|
|
Отправлено: 16.10.21 11:26. Заголовок: count = 0 for a1 in..
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 )
|
|
|
|
Отправлено: 16.10.21 15:04. Заголовок: Другой вариант решения
Другой вариант решения (хотя и менее красивый): цитата: | 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)) |
|
|
|
|
|
Отправлено: 16.10.21 16:14. Заголовок: Решение то правильно..
Решение то правильное было, но задачу не ту решала)) В соседней задаче было условие деления на 4, а я это условие реализовала в данной задаче, вот ответ и не получался))
|
|
|
|