Да. Это задание, это довольно дразнилка для меня, чтобы быть честным. Цель программы, или «проблема» (если вы хотите посмотреть на нее в математических выражениях), делит два числа друг на друга. Вы можете разделить целые числа и фракции друг против друга. Определение функции выглядит следующим образом:Преобразование фракции в десятичную с целыми числами в C++
bool divide(int c1, int n1, int d1, int c2, int n2, int d2, char result[], int len)
c1, c2 - целые числа
n1, n2 - Числитель 1, числитель 2
d1, d2 - Знаменатель 1, Знаменатель 2
результат [] - массив символов, который является чтобы отобразить ответ
Len - количество символов в результате []
Я бы просто использовать длинные разделения и найти свой ответ таким образом, но так как существует ограничение не использовать double, float, или string Я более ограничен в своих возможностях по отношению к моему подходу.
Хорошей новостью является то, что я получил далеко идущие пути к окончательному решению и хотел бы задать совет, каким может быть мой следующий шаг. Это мой процесс до сих пор:
1) Преобразование каждого числа к ненадлежащей фракции
2) Возьмите результат 1 * (1/результат 2)
3) Найти целочисленную часть решения (если есть один)
4) (Из-за неправильную фракцию) Возьмите числитель% знаменатель, чтобы найти свой новый числитель для смешанной фракции у меня есть
5) Я сейчас здесь, пытаясь найти базу 10 для знаменателя, поэтому я могу представить смешанная фракция в десятичном формате .. Любые указатели были бы полезны!
Благодарим вас за ответ. У меня алгоритм работает до этого момента. Может ли другой способ представить эту дробь в виде десятичной дробной части, отличной от нахождения эквивалентного знаменателя базы 10? – Zac
@Zac На самом деле выполните длинное разделение, как и на бумаге. –