• Даны две рациональные дроби: a/b и c/d. Сложите их и результат представьте в виде несократимой дроби m/n. Входные данные Программа получает на вход 4 натуральных числа a, b, c, d, не превосходящих 100. Выходные данные Программа должна вывести 2 натуральных числа m и n такие, что m/n=a/b+c/d и дробь m/n – несократима Нужно на языке С и С++ помогите пожалуйста

Ответы 6

  • Вариант на С, увы, сайт загрузить не дает.
  • Спасибо
  • Можешь еще одну решить?
    • Автор:

      bean
    • 5 лет назад
    • 0
  • https://znanija.com/task/29670100
  • Если вы выражаете мне благодарность, жмите на "Спасибо"
    • Автор:

      tazjvag
    • 5 лет назад
    • 0
  • Если я правильно понял, то

    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", a, b);

       printf("Вторая дробь: %hi/%d", c, d);

       printf("Результат: %hi/%hi", m, n);

    }

    answer img
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years