Автор | Сообщение |
|
Отправлено: 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))
|
 |
|
Ответов - 3
[только новые]
|
|
|
Отправлено: 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)
|
 |

|
|
Отправлено: 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)
|
 |

|
|