搜索
查看: 849|回复: 13
打印 上一主题 下一主题

【求助】编写程序:小数转换成分数

[复制链接]
跳转到指定楼层
楼主
发表于 2015-10-14 17:30:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
编写成学,实现以下功能:从键盘输入一个纯小数,将其转换成最简分数并输出,输出形式为:分子/分母。
【输入样例】 0.45
【输出样例】 9/20

沙发
发表于 2015-10-15 21:33:10 | 只看该作者
可以用输入的数字与一个数相乘,一直试,试到乘积是一个正整数为止
板凳
发表于 2015-10-15 21:33:23 | 只看该作者
可以用输入的数字与一个数相乘,一直试,试到乘积是一个正整数为止

点评

看下面的  发表于 2015-10-15 21:38
地板
发表于 2015-10-15 21:37:45 | 只看该作者
上面的真是效率低....
直接测出这个小数有多少位,
例如,输入0.155则
  1. a = 155
  2. b = 1000
复制代码
然后求a和b的gcd
直接相除即可
  1. 155和1000的gcd是5
  2. 则(155 / 5) / (1000 / 5) = 31 / 200
复制代码
5#
发表于 2015-10-15 21:51:49 | 只看该作者
4399APPLE 发表于 2015-10-15 21:37
上面的真是效率低....
直接测出这个小数有多少位,
例如,输入0.155则然后求a和b的gcd

你这样还要约分,而且的话你还要求小数部分麻烦
6#
 楼主| 发表于 2015-10-16 09:49:59 | 只看该作者
有完整程序吗?简单易懂的{:soso_e183:}
7#
 楼主| 发表于 2015-10-16 09:50:41 | 只看该作者
zhuzhu81998 发表于 2015-10-15 21:51
你这样还要约分,而且的话你还要求小数部分麻烦

有完整程序吗?简单易懂的
8#
 楼主| 发表于 2015-10-16 09:50:50 | 只看该作者
4399APPLE 发表于 2015-10-15 21:37
上面的真是效率低....
直接测出这个小数有多少位,
例如,输入0.155则然后求a和b的gcd

有完整程序吗?简单易懂的
9#
发表于 2015-10-16 21:10:50 | 只看该作者
zhuzhu81998 发表于 2015-10-15 21:51
你这样还要约分,而且的话你还要求小数部分麻烦

你觉得我的算法时间复杂度是O(N)?
10#
发表于 2015-10-16 21:11:30 | 只看该作者
zhuzhu81998 发表于 2015-10-15 21:51
你这样还要约分,而且的话你还要求小数部分麻烦

你这样编程简单
但是如果输入0.48997798431544我倒想知道要试到什么时候
11#
发表于 2015-10-16 21:12:34 | 只看该作者
不要因为怕麻烦就去做时间复杂度为O(N)的...放着O(1)的算法都不用...
12#
发表于 2015-10-24 22:55:14 | 只看该作者
4399APPLE 发表于 2015-10-16 21:12
不要因为怕麻烦就去做时间复杂度为O(N)的...放着O(1)的算法都不用...

辗转相除,先人的智慧
13#
发表于 2015-10-30 19:36:05 | 只看该作者
欧几里得求gcd的算法什么时候变成O(1)了……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表