Форум » Кодирование и декодирование информации » Задание №3936 » Ответить

Задание №3936

Andrew: Получился ответ 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

Поляков: 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

polyakovss: Можно решить, например, так: [pre2] 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)[/pre2]А так работает значительно быстрее: [pre2] 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))[/pre2]



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