Решить в целых числах уравнение ax + b = 0. Входные данные Вводятся 2 целых числа: a и b....

0 голосов
300 просмотров

Решить в целых числах уравнение ax + b = 0.
Входные данные
Вводятся 2 целых числа: a и b.
Выходные данные
Необходимо вывести все решения, если их число конечно, “NO” (без кавычек), если решений нет, и “INF” (без кавычек), если решений бесконечно много.
В Паскале, пожалуйста!)


Информатика (24 баллов) | 300 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
  a,b:integer;
begin
  Write('Введите a,b: '); Read(a,b);
  if a<>0 then
    if (b mod a)=0 then Writeln(-b div a) else Writeln('NO')
  else
    if b=0 then Writeln('INF') else Writeln('NO')
end.

(142k баллов)
0

Извините, не подскажите?

0

program N;
var a,b:integer;
begin
readln (a,b);
if (b=0) and (a=0) then
write('INF');
if (a<>0) and (b mod a=0) then
writeln(-b/a) else
write ('NO');
end.

0

я написал так, а на сайте мне забраковали ее, почему?

0

Откуда же я могу знать, почем что-то какому-то сайту что-то не понравилось? Должно быть. наверно, сообщение о причине...

0

А то, что мной написано, тоже бракуется?

0

Что да Вашего варианта, (a<>0) and (b mod a=0) - что должно произойти, если a=0? "Ленивый" компилятор проверит a<>0, получит "ложно" и дальше выражение не станет обрабатывать. А "дотошный" попробует вычислить b mod a = 0 и программа помрёт при делении на ноль. Поэтому так опасно писать.

0

оба решения не работают(

0

Приведите пример, когда решение не работает.