将分数转换为带有整数的小数C++

Converting a fraction into a decimal with integers in C++

本文关键字:整数 小数 C++ 转换      更新时间:2023-10-16

是的。这是一个作业,老实说,这对我来说是一个脑筋急转弯。程序的目标或"问题"(如果你想用数学术语来看待它)是将两个数字相互分开。您可以将整数和分数相互除以。函数定义如下所示:

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 - 结果中允许的字符数 []


我会简单地使用长除法并以这种方式找到我的答案,但由于有不使用双精度浮点数字符串的限制,我对我的方法的选择更加有限。

好消息是,我已经朝着最终解决方案走了很长一段路,并想就我的下一步行动征求意见。这是我到目前为止的过程:

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

2) 取结果 1

* (1/结果 2 )

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

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

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

(A/B)/(C/D)

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

因此,只需计算AD和BC,然后减少到最低项。

如果你想真正做除法,就像你在纸上做的那样。