Автор | Сообщение |
|
Отправлено: 04.11.22 23:21. Заголовок: задача 24 номер 228
что не так s=open('24-228.txt').readline() Max=0 for i in range(len(s)): if s=='S' and s[i+1]=='1' and s[i+2]=='2' \ and s[i+7]=='7' and s[i+8]=='7' and s[i+11]=='9'\ and s[i+12]=='S': l=int(s[i+1]+s[i+2]+s[i+3]+s[i+4]+s[i+5]\ +s[i+6]+s[i+7]+s[i+8]+s[i+9]+s[i+10]+s[i+11]) if l>Max: Max=l print(Max)
|
|
|
Ответов - 2
[только новые]
|
|
|
Отправлено: 13.11.22 13:45. Заголовок: как минимум, вместо ..
как минимум, вместо if s=='S' напишите if s [ i ] =='S'
|
|
|
|
Отправлено: 07.12.22 11:01. Заголовок: А где Вы проверяете,..
А где Вы проверяете, что между SS у Вас не оказалось букв? Вам предложить свое решение. Разбиваю строку по SS (split), затем перебираю все подстроки, которые получились (это все подстроки, которые находятся между SS, ограниченные парой этих символов с двух сторон), затеем просто проверяю их на последовательность, состоящую только из цифр (a.isdigit()), и соответствие маске (fnmatch), ну а далее просто проверяю (int) на максимум. Затем нахожу сумму и нужное произведение цифр... #егэ 24(228) from fnmatch import* f=open('24-228.txt') s=f.readline() s=s.split('SS') mx=0 for a in s: if a.isdigit(): if fnmatch (a,'12????77??9'): mx=max(mx,int(a)) x=mx sx=0 px=1 while x>0: d=x%10 if d%2!=0: sx+=d else: px*=d x//=10 print (sx+px)
|
|
|
|