Форум » Обработка целых чисел » Не сходится ответ к задаче 4270 генератора » Ответить

Не сходится ответ к задаче 4270 генератора

catrh: Условие задачи: (№ 4270) (В. Шубинкин) В файле 17-1.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число оканчивается на 6 и делится на 3. Затем - минимальное число в паре среди всех таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Например, для последовательности 306; 36; -15; -6; 2; 16 ответом будет пара чисел: 4 и -15. Ответ 587 -9996 Решение: [pre2] f=open('линия-17-4270.txt') a=[ int(x) for x in f] f.close() k=0 m=10001 for i in range(len(a)-1): if a[ i]%10==6 and a[ i]%3==0 or a[ i+1]%10==6 and a[ i+1]%3==0: k+=1 m=min(m,min(a[ i],a[ i+1])) print(k,m)[/pre2] ответ: 606 -9984

Ответов - 2

sgglazkov: Остаток от деления отрицательных чисел в python находится другим образом. Например попробуйте запустить код: [pre2] print(-34 % 10) print(34 % 10) [/pre2] Ответы будут разные, хотя по факту он должен быть одинаковый и верный разумеется тот, который для положительного числа. Поэтому когда в задаче отрицательные числа, при нахождении остатков используйте модуль, удачи! [pre2] f=open('test.txt') a=[ int(x) for x in f] f.close() k=0 m=10001 for i in range(len(a)-1): if abs(a[ i])%10==6 and abs(a[ i])%3==0 or abs(a[ i+1])%10==6 and abs(a [i+1])%3==0: k+=1 m=min(m,min(a[ i],a [ i+1])) print(k,m)[/pre2]

catrh: Действительно, забыла про отрицательные. Спасибо!



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