@SashaN69
Школота

Что неправильно?

Есть задачка:
Вам дано три целых числа a, b и c. Вам нужно сказать, существует такое число среди тех чисел, чтобы оно было равно сумме двух других чисел.

входные данные
Первая строка содержит три целых числа a, b и c (0≤a, b, c≤100).

Исходные данные
Выведите «Yes», ​​если такое число есть, иначе выведите «No» (без кавычек).
5fda1cc32e88b397848222.jpeg
И всё вроде работает , но если среди чисел есть ноль то программа работает неправильно.Хотелось бы понять в чём ошибка.
Код:
import re 
num = str(input())
s = num.split()
p = int(s[0])
m = int(s[1])
o = int(s[2])

def check_number(p,m,o):
    check = [p, m, o]
    for i in check:
        if i > 100:
            return False
        elif 1 > i:
            return False

l = []
if check_number(p, m, o) != False:
    l.append(p)
    l.append(m)
    l.append(o)
    highest = max(l)
    if o == highest:
        l.remove(o)
    elif m == highest:
        l.remove(m)
    elif p == highest:
        l.remove(p)
    if sum(l) == highest:
        print("Yes")
    else:
        print("No")
else:
    print("No")
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
@galaxy
Хотелось бы понять в чём ошибка.

В этом:
elif 1 > i:
            return False
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
adugin
@adugin Куратор тега Python
Вы слишком усложняете)
numbers = input('Введите три числа через пробел: ')
numbers = set(map(int, numbers.split()))
max_number = max(numbers)
numbers.remove(max_number)
print('Yes' if sum(numbers) == max_number else 'No')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы