Даны две рациональные дроби: a/b и c/d. сложите их и результат представьте в виде несократимой дроби m/n. входные данные программа получает на вход 4 натуральных числа a, b, c, d, не превосходящих 100. выходные данные программа должна вывести 2 натуральных числа m и n такие, что m/n=a/b+c/d и дробь m/n – несократима нужно на языке с и с++
Если я правильно понял, то
1. Вариант С++
#include <iostream>
int NOD(int var1, int var2) //Алгоритм Евклида
{
while(var1 != var2)
{
if(var1 > var2)
var1 = var1 - var2;
else var2 = var2 - var1;
}
return var1;
}
int NOK(int var1, int var2)
{
return (var1 * var2) / NOD(var1, var2);
}
int main()
{
short int
a, b, c, d,
m, n, NK;
std::cin >> a >> b >> c >> d;
NK = NOK(b, d); // избегаем не нужных вычислений
m = a * (NK / b) + c * (NK / d);
n = NOK(b, d);
std::cout << "Первая дробь: " << a << "/" << b << std::endl;
std::cout << "Вторая дробь: " << c << "/" << d << std::endl;
std::cout << std::endl << "Результат: " << m << "/" << n << std::endl;
}
2. C
#include <stdio.h>
int NOD(int var1, int var2) //Алгоритм Евклида
{
while(var1 != var2)
{
if(var1 > var2)
var1 = var1 - var2;
else var2 = var2 - var1;
}
return var1;
}
int NOK(int var1, int var2)
{
return (var1 * var2) / NOD(var1, var2);
}
int main()
{
short int
a, b, c, d,
m, n, NK;
scanf("%hi%hi%hi%hi", &a, &b, &c, &d);
NK = NOK(b, d); // избегаем не нужных вычислений
m = a * (NK / b) + c * (NK / d);
n = NOK(b, d);
printf("Первая дробь: %hi/%d\n", a, b);
printf("Вторая дробь: %hi/%d\n", c, d);
printf("Результат: %hi/%hi\n", m, n);
}