首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一个小数,把他分解成2个正整数的除法,且这两个正整数的足最大公约数为1,以前好像看到过这个算法。那位还有记得不。解决方法

2013-10-21 
一个小数,把他分解成2个正整数的除法,且这两个正整数的足最大公约数为1,以前好像看到过这个算法。那位还有

一个小数,把他分解成2个正整数的除法,且这两个正整数的足最大公约数为1,以前好像看到过这个算法。那位还有记得不。
比如1.5=3/2 , 0.16=4/25,类似这样的,记得以前看到过代码,一下子找不到了。
[解决办法]
本帖最后由 caozhy 于 2013-03-10 21:58:56 编辑 很简单。lz也算是写了不少程序了,就不贴详细代码了。

思路,首先移动小数点,变成整数/10^n的形式。
比如1.5 = 15/10  0.16 = 16/100
然后求最大公约数15, 10为5,16, 100为4。
最后同除公约数3/2 4/25
收工。
[解决办法]
是的,先把小数按10的n次方(n为小数点后的位数)
(小数*10^n)/10^n,然后求除数和被除数的最大公约数(C#最大公约数算法),把被除数和除数同时除以最大公约数,就是你要的结果了

热点排行