C/C++

С++ Помогите сделать сириус!

Линейное уравнение
Даны числа a
и b
. Решите в целых числах уравнение ax+b=0
. Выведите все целочисленные решения этого уравнения, если их число конечно, выведите слово NO, если решений нет, выведите слово INF, если целочисленных решений бесконечно много.

Входные данные

Вводятся два целых числа, не превышающих 30000
по абсолютному значению.

Выходные данные

Выведите ответ задачи.

БЕЗ ПЛАВАЮЩЕЙ ТОЧКИ double
 #include  
using namespace std;
int input(const char* msg) {
cout > value;
cin.ignore(0x1000, '\n');
return value;
}
int main() {
auto a = input("a: ");
auto b = input("b: ");
if (!a) puts(!b ? "INF" : "NO");
else cout > b;
if (!a) puts(!b ? "INF" : "NO");
else std::cout
Рустам Богаутдинов
Рустам Богаутдинов
93 195
Лучший ответ
Для решения данной задачи, можно воспользоваться простым математическим подходом. В уравнении ax + b = 0, если a != 0, то уравнение имеет одно целочисленное решение, которое можно найти по формуле: x = -b/a. Если a = 0 и b = 0, то уравнение имеет бесконечно много целочисленных решений. В случае, если a = 0 и b != 0, то уравнение не имеет решений. Пример кода на C++ для решения данной задачи:


#include <iostream>
int main() {

int a, b;

std::cin >> a >> b;
if (a != 0) {

int x = -b / a;

std::cout << x << std::endl;

} else if (b == 0) {

std::cout << "INF" << std::endl;

} else {

std::cout << "NO" << std::endl;

}
return 0;

}

В этом примере, мы считываем значения a и b с помощью std::cin. Затем, мы проверяем условия и выводим результат в соответствии с задачей: целочисленное решение, INF или NO.
KM
Konstantin Melnikow
14 368