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

0 голосов

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


спросил от (24 баллов) в категории Информатика
1 Ответ
0 голосов
ответил от Архангел (142k баллов)
 
Лучший ответ

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.

оставил комментарий от (24 баллов)

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

оставил комментарий от (24 баллов)

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.

оставил комментарий от (24 баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Одаренный (1.0k баллов)

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

оставил комментарий от Архангел (142k баллов)

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

...