在C ++中使用整数将小数转换为小数

时间:2013-09-18 03:50:46

标签: c++ integer division greatest-common-divisor

是。这是一个任务,说实话,这对我来说是一个很好的脑筋急转弯。程序的目标,或“问题”(如果你想用数学术语来看),将两个数字相互分开。您可以将整数和分数相互分开。函数定义如下所示:

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

result [] - 要显示答案的字符数组

len - result []

中允许的字符数

我会简单地使用长除法并以这种方式找到我的答案但是因为有限制不使用 double float 字符串我对我的方法的选择更加有限。

好消息是我已经走向最终解决方案,并希望提出建议作为我的下一步行动。到目前为止,这是我的过程:

1)将每个数字转换为不正确的分数

2)取结果1 *(1 /结果2)

3)找到解决方案的整数部分(如果有的话)

4)(来自不正确的分数)取分子%分母为我所拥有的混合分数找到我的新分子

5)我现在在这里,试图为分母找到一个10倍的基数,所以我可以用十进制格式表示混合分数。任何指针都会有所帮助!

1 个答案:

答案 0 :(得分:2)

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

所以只需计算AD和BC,然后减少到最低值。

如果你想实际进行分割,请按照与纸上相同的方式进行分割。