S = int(input())
lim_1 = int(input())
lim_2 = int(input())
x1 = lim_1 + 1
x2 = lim_1 + 2
x3 = lim_1 + 3
x = 0
if (S + x1 - x2) % x3 == 0:
A = x3
B = x2
C = x1
elif (S + x2 - x1) % x3 == 0:
A = x3
B = x1
C = x2
elif (S + x3 - x1) % x2 == 0:
A = x2
B = x1
C = x3
elif (S + x3 - x2) % x1 == 0:
A = x1
B = x2
C = x3
elif (S + x1 - x3) % x2 == 0:
A = x2
B = x3
C = x1
elif (S + x2 - x3) % x1 == 0:
A = x1
B = x3
C = x1
else:
x = 1
if x == 0:
print('A = ', A, ', B = ', B, ' C = ', C)
else:
print('Невыполнимое условие')
То, что громоздко, это понятно. Но кажется мне, что где-то у меня и ошибка затесалась, так как при данных: S - 165, lim_1 = 4, lim_2 = 8 у меня срабатывает else, хотя априори это верные данные. Что не так? Где я ошибся в каком-то символе? Можно ли код сделать проще.
Python
В коде ошибка? Его можно упростить?
Просто, чтобы размять мозги, решил сделать код для решения математической задачи из ЕГЭ (№21).
Да, есть ошибка: В последнем блоке elif, ты присвоил переменной C значение x1 вместо x3. Исправь это присвоение на x3.
Потом по упрощению: твой код можно упростить и сделать более читаемым. Тебе не нужно создавать шесть отдельных переменных x1, x2, x3, A, B, C. Вместо этого, ты можешь использовать списки для хранения значений и происходить операции с ними в цикле. Вот тебе фулл версия более простого кода:
S = int(input())
lim_1 = int(input())
lim_2 = int(input())
x_values = [lim_1 + 1, lim_1 + 2, lim_1 + 3]
ABC_combinations = []
for i in range(3):
for j in range(3):
if i != j:
x1 = x_values[i]
x2 = x_values[j]
x3 = sum(x_values) - x1 - x2
if (S + x1 - x2) % x3 == 0:
ABC_combinations.append((x3, x2, x1))
elif (S + x2 - x1) % x3 == 0:
ABC_combinations.append((x3, x1, x2))
elif (S + x3 - x1) % x2 == 0:
ABC_combinations.append((x2, x1, x3))
elif (S + x3 - x2) % x1 == 0:
ABC_combinations.append((x1, x2, x3))
elif (S + x1 - x3) % x2 == 0:
ABC_combinations.append((x2, x3, x1))
elif (S + x2 - x3) % x1 == 0:
ABC_combinations.append((x1, x3, x2))
if len(ABC_combinations) > 0:
for combination in ABC_combinations:
print(f"A = {combination[0]}, B = {combination[1]}, C = {combination[2]}")
else:
print('Невыполнимое условие')
Потом по упрощению: твой код можно упростить и сделать более читаемым. Тебе не нужно создавать шесть отдельных переменных x1, x2, x3, A, B, C. Вместо этого, ты можешь использовать списки для хранения значений и происходить операции с ними в цикле. Вот тебе фулл версия более простого кода:
S = int(input())
lim_1 = int(input())
lim_2 = int(input())
x_values = [lim_1 + 1, lim_1 + 2, lim_1 + 3]
ABC_combinations = []
for i in range(3):
for j in range(3):
if i != j:
x1 = x_values[i]
x2 = x_values[j]
x3 = sum(x_values) - x1 - x2
if (S + x1 - x2) % x3 == 0:
ABC_combinations.append((x3, x2, x1))
elif (S + x2 - x1) % x3 == 0:
ABC_combinations.append((x3, x1, x2))
elif (S + x3 - x1) % x2 == 0:
ABC_combinations.append((x2, x1, x3))
elif (S + x3 - x2) % x1 == 0:
ABC_combinations.append((x1, x2, x3))
elif (S + x1 - x3) % x2 == 0:
ABC_combinations.append((x2, x3, x1))
elif (S + x2 - x3) % x1 == 0:
ABC_combinations.append((x1, x3, x2))
if len(ABC_combinations) > 0:
for combination in ABC_combinations:
print(f"A = {combination[0]}, B = {combination[1]}, C = {combination[2]}")
else:
print('Невыполнимое условие')
S = int(input())
lim_1 = int(input())
lim_2 = int(input())
x1 = lim_1 + 1
x2 = lim_1 + 2
x3 = lim_1 + 3
found = False
for a, b, c in [(x1, x2, x3), (x1, x3, x2), (x2, x3, x1)]:
if (S + a - b) % c == 0:
A = c
B = b
C = a
found = True
break
if found:
print(f'A = {A}, B = {B}, C = {C}')
else:
print('Невыполнимое условие')
S = int(input())
lim_1 = int(input())
lim_2 = int(input())
x_values = [lim_1 + 1, lim_1 + 2, lim_1 + 3]
found_solution = False
for A in x_values:
for B in [x for x in x_values if not(x==A)]:
for C in [x for x in [lim_1+1, lim_1+2, lim_1+3] if not(x==A or x==B)]:
if (S+B-C)%A==0:
print('A=',A,', B=',B,', C=',C)
found_solution=True
break
if found_solution:
break
if found_solution:
break
if not found_solution:
print('Невыполнимое условие')
Похожие вопросы
- Где ошибка в коде? (Python)
- Ошибка в коде стандарт PEP8 Python
- Python как упростить код чтобы он не превышал максимальное время работы
- Ошибка в коде python discord.py
- объясните мне как смотреть код и видеть причину ошибки? Это опыт работы, практики, гениальности или чего-то еще?
- ПОМОГИТЕ НАЙТИ ОШИБКУ В КОДЕ (выводит наибольшее и наименьшее а среднее нет)
- Discord.py ошибка в коде
- Ошибка в коде на Python
- Ошибка в коде
- Сижу уже час, не пойму где ошибка в коде. Задача с acmp.ru
В твоём варианте, кстати, тоже "невыполнимое условие" выходит при тех же исходных данных...