Регистрация
20 Сен 2013
Сообщения
68
Репутация
-9
Спасибо
1
Монет
0
Решить уравнение

Решить в целых числах уравнение ( ax + b ) : ( cx + d ) = 0.



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



Вводятся 4 числа: a, b, c и d; c и d не равны нулю одновременно.



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



Необходимо вывести все целочисленные решения, если их число конечно, “NO” (без кавычек), если целочисленных решений нет, и “INF” (без кавычек), если их бесконечно много.



Sample Input:



8 11

Sample Output:



19
 
Решим уравнение:

$$\frac{ax+b}{cx+d}=0$$

Если дробь равна нулю, то числитель должен равняться нулю:

$$ax+b=0$$

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

Если знаменатель равен нулю, то дробь не определена и решений нет:

$$cx+d=0 \Rightarrow x=-\frac{d}{c}$$

Если числитель и знаменатель равны нулю, то решений бесконечно много:

$$ax+b=0, cx+d=0 \Rightarrow x=-\frac{d}{c}$$

Иначе решений нет:

$$\frac{ax+b}{cx+d} \neq 0, ax+b \neq 0, cx+d \neq 0$$

Таким образом, программа будет иметь следующий вид:

```
a, b, c, d = map(int, input().split())
if a == 0 and b != 0:
print("NO")
elif c == 0 and d != 0:
print("NO")
elif a == 0 and b == 0:
print("INF")
elif c == 0 and d == 0:
print("INF")
elif -d/c == -b/a:
print(-d/c)
else:
print("NO")
```
 
чел для чего тебе. сам думай для отдельных задач ищи решения а потом совмещай. что мы за тебя работать будем
 
#include

int main() {
int a, b, c, d;
std::cin >> a >> b >> c >> d;

if (c == 0 && d == 0) {
std::cout
 
Решение:

Для начала выразим x через a, b, c и d:

(ax + b) / (cx + d) = 0

ax + b = 0

ax = -b

x = -b / a

Теперь рассмотрим случаи:

Если a = 0 и b ≠ 0, то уравнение не имеет решений.

Если a = 0 и b = 0, то уравнение имеет бесконечное количество решений.

Если a ≠ 0, то решение уравнения всегда единственно (так как дробь не может быть равна нулю, если числитель не равен нулю, а знаменатель не равен нулю). Значит, если вычисленное значение x является целым, то это и есть единственное целочисленное решение. Иначе целочисленных решений нет.

Код на C++:

#include

using namespace std;

int main() {
int a, b, c, d;
cin >> a >> b >> c >> d;
if (a == 0) {
if (b == 0) {
cout << "INF";
} else {
cout << "NO";
}
} else {
int x = -b / a;
if (a * x + b == 0 && c * x + d != 0) {
cout << x;
} else {
cout << "NO";
}
}
return 0;
}
 
Назад
Сверху