Автор | Сообщение |
|
Отправлено: 06.05.21 13:44. Заголовок: Задание №3936
Получился ответ 34, а верный 35. Решал так: на первом месте ставил самые большие и по убыванию добавлял, чтобы оставались цифры на другие места (8) (9) (6,4,2) (7,5,3) (0) (1) (8,6) (9,7) (4,2) (5,3) (0) (1) (8,6,4) (9,7,5) (2) (3) (0) (1) В итоге сумма этих трех строк равна 34. Где-то потерял еще одну строку. Заранее спасибо за помощь!
|
|
|
Ответов - 2
[только новые]
|
|
|
| Администратор
|
Сообщение: 2785
|
|
Отправлено: 06.05.21 16:28. Заголовок: 543210 654321 743210..
543210 654321 743210 763210 765210 765410 765430 765432 854321 874321 876321 876521 876541 876543 943210 963210 965210 965410 965430 965432 983210 985210 985410 985430 985432 987210 987410 987430 987432 987610 987630 987632 987650 987652 987654
|
|
|
|
Отправлено: 06.05.21 20:47. Заголовок: Варианты решения
Можно решить, например, так: цитата: | e = '02468' o = '13579' n = 0 for s in range(100000,1000000): x = list(str(s)) if ((x[0] in e and x[2] in e and x[4] in e and x[1] in o and x[3] in o and x[5] in o)\ or (x[0] in o and x[2] in o and x[4] in o and x[1] in e and x[3] in e and x[5] in e))\ and (x == sorted(x,reverse = True)): #print(s) n += 1 print(n) |
|
А так работает значительно быстрее: цитата: | from itertools import permutations def f(p,q): n = 0 for a, c, e in permutations(p,3): for b, d, f in permutations(q,3): x = list(a+b+c+d+e+f) if a != '0' and x == sorted(x,reverse = True): n += 1 return n even = '02468' odd = '13579' print(f(even,odd)+f(odd,even)) |
|
|
|
|
|