Вопрос задан 26.07.2026 в 17:43. Предмет Информатика. Спрашивает Лачинова Алина.

На Python с использованием if. Решить в целых числах уравнение (ax + b) : (cx + d) = 0. Входные данные: вводятся 4 числа: a, b, c и d; c и d не равны нулю одновременно. Выходные данные: необходимо вывести все решения, если их число конечно, «NO» (без кавычек), если решений нет, и «INF» (без кавычек), если решений бесконечно много.

Перейти к ответам

Ответы на вопрос

Отвечает Винокур Олексій.

Дробь равна нулю тогда и только тогда, когда:

  1. Числитель равен нулю:

    ax+b=0ax+b=0
  2. Знаменатель не равен нулю:

    cx+d0cx+d\ne 0

Разберём случаи.

Если a = 0, то числитель не зависит от x:

  • при b = 0 числитель равен нулю для всех целых x. Знаменатель может обратиться в ноль максимум при одном значении x, поэтому допустимых значений всё равно бесконечно много — выводим INF;

  • при b ≠ 0 числитель никогда не равен нулю — выводим NO.

Если a ≠ 0, возможное решение:

x=bax=-\frac{b}{a}

Оно подходит только тогда, когда является целым числом и не обращает знаменатель в ноль.

Python
a, b, c, d = map(int, input().split())

if a == 0: if b == 0: print("INF") else: print("NO") else: if (-b) % a != 0: print("NO") else: x = -b // a

if c * x + d == 0: print("NO") else: print(x)

Например, для входных данных:

2 -6 1 5

из числителя получаем:

2x6=0,x=32x-6=0,\qquad x=3

Знаменатель при этом равен:

3+5=803+5=8\ne0

Поэтому программа выведет:

3

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос