Python

Программирование Python, ошибка

Почему при вводе в n единицы в итоге выводятся две единицы, а не одна? Откуда взялась вторая?

n = int(input())
total = 0
x = n // 5
y = n - 5 * x
z = (5 * x) // 25
a = (5 * x - z * 25) // 10
if n == 1 or n == 5 or n == 10 or n == 25:
print('1')
if 1 < n <= 9 and not(n == 1 and n == 5 and n == 10 and n == 25):
total += x + y + z + a
else:
total += y + z + a
print(total)
Проблема с выводом двух единиц возникает из-за неправильного использования условных операторов в вашем коде.

В вашем коде, в блоке if 1 < n <= 9 and not(n == 1 and n == 5 and n == 10 and n == 25):, условие n == 1 and n == 5 and n == 10 and n == 25 всегда будет ложным, потому что переменная n не может одновременно быть равной 1, 5, 10 и 25 одновременно. Это означает, что ветка else будет выполняться всегда, когда n не равно 1, 5, 10 или 25.

Чтобы исправить это, вам нужно изменить условие в блоке if на что-то более логичное. Например, вы можете использовать оператор in для проверки, содержится ли значение n в списке [1, 5, 10, 25]. Тогда ваш код будет выглядеть следующим образом:

python
Copy code
 n = int(input()) 
total = 0
x = n // 5
y = n - 5 * x
z = (5 * x) // 25
a = (5 * x - z * 25) // 10

if n in [1, 5, 10, 25]:
print('1')
else:
total += x + y + z + a
print(total)
Ринат Хисматуллин
Ринат Хисматуллин
2 415
Лучший ответ
Михаил Наумчик Благодарю!
Первая - print('1')
Вторая - print(total)
Алмаз Ашкенов
Алмаз Ашкенов
34 941
Михаил Наумчик Благодарю!
 if n in [1, 5, 10, 25]: print('1')  
elif 1 < n
Михаил Наумчик Благодарю!