1. Главная
  2. Библиотека
  3. Другое
  4. B файле содержится последовательность целых чисел, кажд...
Решение задачи

B файле содержится последовательность целых чисел, каждое из которых по модулю не превышает 100 000. Определите количество троек элементов последовательности, в которых ровно два из трёх элементов больше квадрата минимального двузначного

  • Другое

Условие:

B файле содержится последовательность целых чисел, каждое из которых по модулю не превышает 100 000. Определите количество троек элементов последовательности, в которых ровно два из трёх элементов больше квадрата минимального двузначного последовательности, a элемента произведение модулей элементов тройки кратно максимальному четырёхзначному элементу последовательности, который оканчивается 1. Гарантируется, что последовательности есть хотя бы одно четырёхзначное число, которое оканчивается на 1. В ответе запишите на B количество найденных троек чисел, затем максимальную из сумм модулей элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности. код:f=open('C:/Users/Дом/Downloads/17 (9).txt').readlines()
l=[int(i) for i in f]
o=[]
for i in range(len(l)):
if abs(l[i])>=10 and abs(l[i])<=99:
o.append(l[i])
m=min(o)**2
u=[]
for i in range(len(l)):
if (abs(l[i])>=1000 and abs(l[i])<=9999) and abs(l[i])%10==1:
u.append(l[i])
mx=max(u)
p=[]
for i in range(len(l)-2):
pr=abs(l[i])abs(l[i+1])abs(l[i+2])
s=abs(l[i])+abs(l[i+1])+abs(l[i+2])
y1=int(l[i]>m)+int(l[i+1]>m)+int(l[i+2]>m)
y2=int(abs(l[i])%10==1 and (abs(l[i])>=1000 and abs(l[i])<=9999))+\
int(abs(l[i+1])%10==1 and (abs(l[i+1])>=1000 and abs(l[i+1])<=9999))+\
int(abs(l[i+2])%10==1 and (abs(l[i+2])>=1000 and abs(l[i+2])<=9999))
if y1==2 and pr%mx==0 and y2>=1:
p.append(s)
print(len(p),max(p))
что не так с кодом?

Решение:

Давайте разберем ваш код шаг за шагом и выясним, что может быть не так.

1. Чтение файла и преобразование данных:


f=open(C:/Users/Дом/Downloads/17 (9).txt).readlines()
l=[int(i) for i in f]

Здесь вы правильно читаете файл и преобразуете строки в целые числа.

2. Поиск двузначных чисел:

o=[]
for i in range(len(l)):
if abs(l[i])=10 and abs(l[i])=99:
o.append(l[i])
m=min(o)2

Вы ищете минимальное двузначное число и возводите его в квадрат. Это тоже правильно.

3. Поиск четырехзначных чисел, оканчивающихся на 1: u=[] for i in range(len(l)): if (...Проверка троек чисел**: Здесь вы проверяете каждую тройку чисел. Однако, возможно, есть ошибка в логике проверки условий. - считает, сколько из трех чисел больше квадрата минимального двузначного числа. Это правильно. - считает, сколько из трех чисел является четырехзначным и оканчивается на 1. Это тоже правильно. - Условие должно работать, если все условия выполнены. 5. : Здесь вы выводите количество найденных троек и максимальную сумму модулей элементов таких троек. - Убедитесь, что файл действительно содержит данные, соответствующие условиям задачи. - Проверьте, что в файле есть хотя бы одно четырехзначное число, оканчивающееся на 1. Если таких чисел нет, то будет неопределенным, что вызовет ошибку. - Убедитесь, что в последовательности есть достаточно элементов для формирования троек (минимум 3). - Добавьте отладочные выводы (например, ) для проверки значений переменных на каждом этапе. - Проверьте, что все условия задачи выполняются для данных в файле. Если вы все это проверили и все равно не работает, пожалуйста, предоставьте пример входных данных, чтобы я мог помочь вам более конкретно.

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет