Кресты / Говнокод #19767 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
constexpr Fraction operator+(const Fraction& fraction) const noexcept
    {
        const Fraction max_fraction_by_denominator{denominator > fraction.denominator ? *this : fraction};
        const Fraction min_fraction_by_denominator{denominator < fraction.denominator ? *this : fraction};
        const bool is_sim_denominator = max_fraction_by_denominator.denominator %
                                        min_fraction_by_denominator.denominator == 0;
        int sim_denominator = is_sim_denominator ?
            max_fraction_by_denominator.denominator : (max_fraction_by_denominator.denominator *
            min_fraction_by_denominator.denominator);
        const int nominator1 = is_sim_denominator ? (min_fraction_by_denominator.nominator *
            max_fraction_by_denominator.denominator / min_fraction_by_denominator.denominator) :
            min_fraction_by_denominator.nominator * max_fraction_by_denominator.denominator;
        const int nominator2 = is_sim_denominator ? max_fraction_by_denominator.nominator :
            max_fraction_by_denominator.nominator * min_fraction_by_denominator.denominator;
        int nominators_sum = nominator1 + nominator2;
        int while_parts_sum = while_part + fraction.while_part;

        while (nominators_sum >= sim_denominator)
        {
            nominators_sum -= sim_denominator;
            ++while_parts_sum;
        }

        if (!nominators_sum)
            sim_denominator = 0;

        return {while_parts_sum, nominators_sum, sim_denominator};
    }

Запостил: jangolare jangolare, (Updated )

Комментарии (6) RSS

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8