Преобразование дроби в десятичную с целыми числами в переполнении стека

Да. Честно говоря, это задание, для меня это просто головоломка. Цель программы, или «задачи» (если вы хотите взглянуть на это с точки зрения математики), — разделить два числа друг на друга. Вы можете делить целые числа и дроби друг на друга. Определение функции выглядит так:

bool divide(int c1, int n1, int d1, int c2, int n2, int d2, char result[], int len)

с1, с2 — Целые числа

n1, n2 — Числитель 1, Числитель 2

d1, d2 — Знаменатель 1, Знаменатель 2

результат [] — Массив символов, который должен отображать ответ

Len — Количество символов, разрешенных в результате []


Я бы просто использовал длинное деление и нашел бы свой ответ таким образом, но есть ограничение не использовать двойной, поплавок, или же строка Я более ограничен в своих возможностях моего подхода.

Хорошей новостью является то, что я получил далеко идущие пути к конечному решению и хотел бы попросить совет каким будет мой следующий ход. Это мой процесс до сих пор:

1) конвертировать каждое число в неправильную дробь

2) Взять результат 1 * (1 / результат 2)

3) Найти целую часть решения (если она есть)

4) (Из неправильной дроби) Возьмите числитель% знаменатель, чтобы найти мой новый числитель для смешанной дроби, которую я имею

5) Я сейчас здесь, пытаюсь найти 10-кратное число для знаменателя, чтобы я мог представить смешанную дробь в десятичном формате. Любые указатели были бы полезны!

-1

Решение

(A / B) / (C / D) = (A / B) x (D / C) = (AD) / (BC)

Так что просто вычислите AD и BC, а затем уменьшите до минимальных сроков.

Если вы хотите на самом деле сделать деление, сделайте это так же, как на бумаге.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]