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
 
			 
						 
						
В твоём варианте, кстати, тоже "невыполнимое условие" выходит при тех же исходных данных...