N = int(input()) l = list(map(int, input().split())) n = [] for i in range(len(l)): l[i] = str(l[i]) s = sum(list(map(int,l[i]))) n.append(s) N=[] for k in l: if sum(list(map(int,k))) == max(n): N.append(int(k)) print(l[n.index(min(n))]) print(max(N)) Даннный код находит элементы с максимальной и минимальной суммой цифр в массиве. Когда ввожу положительные элементы- все работает, но стоит ввести отрицательный- выдаёт ошибку. Как исправить?
1) И куда же этот %10 впихнуть? В какую строку? 2) l[i] = abs(str(l[i])) - вот так?
Высший разум
(1271064)
Python 3.8+
count, numbers = int(input()), list(map(int, input().split()))
sums = list(map(lambda x: sum(map(int, str(abs(x)))), numbers))
print(f'Min sum ({(min_sum := min(sums))}):', *(numbers[i] for i in range(len(sums)) if sums[i] == min_sum))
print(f'Max sum ({(max_sum := max(sums))}):', *(numbers[i] for i in range(len(sums)) if sums[i] == max_sum))
Если это отсюда https://otvet.mail.ru/question/224265467 то там как раз сделал модуль числа из-за этого invalid literal for int() with base 10 Питон получает вместо числа знак минус и из-за этого функция sum не может работать
l = list(map(int, input().split()))
n = []
for i in range(len(l)):
l[i] = str(l[i])
s = sum(list(map(int,l[i])))
n.append(s)
N=[]
for k in l:
if sum(list(map(int,k))) == max(n):
N.append(int(k))
print(l[n.index(min(n))])
print(max(N))
Даннный код находит элементы с максимальной и минимальной суммой цифр в массиве. Когда ввожу положительные элементы- все работает, но стоит ввести отрицательный- выдаёт ошибку. Как исправить?