Предмет: Информатика, автор: даня239



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

Ответы

Автор ответа: Аноним
20
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.


даня239: Извините, не подскажите?
даня239: 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.
даня239: я написал так, а на сайте мне забраковали ее, почему?
Аноним: Откуда же я могу знать, почем что-то какому-то сайту что-то не понравилось? Должно быть. наверно, сообщение о причине...
Аноним: А то, что мной написано, тоже бракуется?
Аноним: Что да Вашего варианта, (a<>0) and (b mod a=0) - что должно произойти, если a=0? "Ленивый" компилятор проверит a<>0, получит "ложно" и дальше выражение не станет обрабатывать. А "дотошный" попробует вычислить b mod a = 0 и программа помрёт при делении на ноль. Поэтому так опасно писать.
krikunde2012: оба решения не работают(
Аноним: Приведите пример, когда решение не работает.
Похожие вопросы
Предмет: Математика, автор: Gulyan637