Автор | Сообщение |
|
Отправлено: 23.04.23 11:26. Заголовок: (№ 5251) (М. Шагитов)
Найдите все тройки элементов последовательности, для которых восьмеричная запись суммы любой пары чисел тройки содержит только чётные цифры, а сумма всех чисел тройки меньше, чем сумма цифр всех чисел в файле, делящихся на 22. Правильное минимальное значение, но неверное кол-во. f = open('17.txt') def d(x): s = [] v = oct(x)[2:] for i in range(len(v)): if int(v[i]) % 2 ==0: s.append(v[i]) if len(s) == len(v): return 1 else: return 0 m, mx = 0, 5555656 s = [int(k.strip()) for k in f.readlines()] l = [] for i in range(len(s)): if s[i] % 22 == 0: l.append(s[i]) for i in range(len(s)-2): if ((d(s[i] + s[i+1]) == 1) or (d(s[i] + s[i+2]) == 1) or (d(s[i+1] + s[i+2]) == 1)) and ( (s[i] + s[i+1] + s[i+2]) < sum(l)): m += 1 mx = min(mx, s[i] + s[i+1] + s[i+2]) print(m, mx, len(s))
|
|
|
Новых ответов нет
[см. все]
|
|
|
Отправлено: 27.04.23 12:29. Заголовок: Ar_ пишет: Заголово..
Ar_ пишет: цитата: | Заголовок: (№ 5251) (М. Шагитов) |
| Ваш код сложно понять, если желаете получить подсказку или иное, уважайте тех, кто пожелает это сделать, для чего достаточно правильно отформатировать свой код при публикации! Как это сделать, подробно написано вверху страницы в выделенном прямоугольнике
|
|
|
|
Отправлено: 24.05.23 10:03. Заголовок: f=open("172.txt&..
f=open("172.txt") a=[int(x) for x in f] sm22=0 kl=0 mn=999999999 for x in a: if x%22==0: while x>0: sm22+=x%10 x=x//10 for x in range(len(a)-2): y1=(oct(a[x]+a[x+1])[2:]) y2=(oct(a[x+2]+a[x+1])[2:]) y3=(oct(a[x]+a[x+2])[2:]) if (y1.count("1")==0 and y1.count("3")==0 and y1.count("5")==0 and y1.count("7")==0) and (y2.count("1")==0 and y2.count("3")==0 and y2.count("5")==0 and y2.count("7")==0) and (y3.count("1")==0 and y3.count("3")==0 and y3.count("5")==0 and y3.count("7")==0) and (a[x]+a[x+1]+a[x+2])<sm22: kl+=1 mn=min(a[x]+a[x+1]+a[x+2],mn) print(kl,mn)
|
|
|
|
| Администратор
|
Сообщение: 4000
|
|
Отправлено: 04.06.23 11:43. Заголовок: Поищите эту задачу з..
Поищите эту задачу здесь, а авторское решение - здесь.
|
|
|
|
Отправлено: 01.07.23 23:12. Заголовок: f=open('c:/17-3..
f=open('c:/17-328.txt') s=[int(c) for c in f.readlines()] w=sum([sum(int(d) for d in str(c)) for c in s if c%22==0]) def g(s): return sum(s)<w and all( e not in oct(a+b)[2::] for (a,b) in [(s[0],s[1]),(s[0],s[2]),(s[1],s[2])] for e in '1357') tr=[sum(s[ i:i+3]) for i in range(len(s)-2) if g(s[i:i+3]) ] print(len(tr), min(tr))
|
|
|
|