packagehduoj;importjava.util.Scanner;/*** 这道题没有整数部分,也就是说数组直接从a[2]开始后面是小数,我把这道题分为了三类:

*

* ①普通有限小数

*

* ②纯循环小数

*

* ③混循环小数

*

* 下面就挨个说它的转化方法:

*

* ①这一类很简单,分子就是小数点后面的数,分母就是10的n次方(n为小数点后面位数)

*

* ②这个小学学奥数的时候老师讲过,也不是很难:分子是循环的数,分母就是和它位数相同的9,比如0.(14),那么就是14/99

*

* ③这个就比上面的多了一步,我也是查了百度百科才知道的。下面就直接用百度百科的例子说明吧,仔细看看就发现方法了:

*

* 0.0105˙717˙=(105717-105)/9990000=105612/9990000=8801/832500

*

* 0.0˙869˙=869/9990,0.00˙716˙=716/99900=179/24975

*

* 0.368˙616˙=(368616-368)/999000=368248/999000=46031/124875

*

* 观察一下,就是小数部分减去不循环部分作为分母,分母就是循环部分个9和非循环部分个0组成,也许这么说很迷,还是看上面例子吧。

**/

public classhdoj_1717_小数转换成分数 {static int gcd(int a,intb){if(b==0)returna;return gcd(b,a%b);

}static void print(int a,intb){int gcd =gcd(a,b);

System.out.println(a/gcd+"/"+b/gcd);

}public static voidmain(String[] args) {

Scanner sc= newScanner(System.in);int count =Integer.parseInt(sc.next());while(count--!=0){

String data=sc.next();if(data.contains("(")){//说明是循环小数

String temp = data.substring(data.indexOf('(')+1,data.indexOf(')'));if(data.indexOf("(")==2){//说明是纯循环小数

int len =temp.length();int numerator =Integer.parseInt(temp);

StringBuilder de_str= newStringBuilder();while(len--!=0){

de_str.append(9);

}int denominator =Integer.parseInt(de_str.toString());

print(numerator,denominator);

}else{//说明是混循环小数

String before_the_brc = data.substring(data.indexOf('.')+1,data.indexOf('('));

String temp_in= before_the_brc+temp;int numerator = Integer.parseInt(temp_in)-Integer.parseInt(before_the_brc);int la_len =temp.length();int be_len =before_the_brc.length();

StringBuilder de_str= newStringBuilder();while(la_len--!=0){

de_str.append(9);

}

print(numerator,Integer.parseInt(de_str.toString())*(int)Math.pow(10,be_len));

}

}else{//说明是普通小数

String temp = data.substring(data.indexOf('.')+1);int pow =temp.length();int numerator =Integer.parseInt(temp);int denominator = (int)Math.pow(10,pow);

print(numerator,denominator);

}

}

}

}

Java化小数为分数_杭电oj1717——小数化分数(java实现)相关推荐

  1. java 写文件 权限不够_教你解决Linux系统中JAVA创建文件后权限不足的问题

    在作业中,项目使用文件上传. 这个功能很常见. 当Kai Ge今天更改其官方帐户时,他遇到了一个问题,即无法访问下载的文件,也无法通过浏览器访问该文件. 它是怎么发生的? 经过许多问题之后,事实证明这 ...

  2. 杭电1430康托 bfs(java)

    魔板: Problem Description 在魔方风靡全球之后不久,Rubik先生发明了它的简化版--魔板.魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示.任一时刻魔板 ...

  3. c++ substr截取中间部分字符串_杭电OJ 字符串处理类部分题解

    一.前言 不知不觉已经大三上学期了,可作为一个计算机狗还没有考过CCF-CSP.因平时学习内容主要与安全方面相关,对于此类算法类的考核并没有太多的准备,故打算开始刷题复习算法和数据结构,准备CCF认证 ...

  4. c++怎么输入带有空格的字符串_杭电OJ 字符串处理类部分题解

    一.前言 不知不觉已经大三上学期了,可作为一个计算机狗还没有考过CCF-CSP.因平时学习内容主要与安全方面相关,对于此类算法类的考核并没有太多的准备,故打算开始刷题复习算法和数据结构,准备CCF认证 ...

  5. 杭电acm1004java答案_杭电acm1004源码

    杭电acm1004源码 专业人士进来 Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/3 ...

  6. java思维导图源代码_如何使用思维导图解读java开源项目

    思维导图与java 思维导图是个很神奇的工具,它具有结构化.可视化.更接近人类大脑认知的特点. 我们在阅读项目的时候往往是无头无脑的随便看源码,其实这是种错误的学习的方法.学习得多注重积累,有输入就要 ...

  7. java byte char io流_一文带你看懂JAVA IO流,史上最全面的IO教学

    原标题:一文带你看懂JAVA IO流,史上最全面的IO教学 一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符 ...

  8. java io流详解_一文带你看懂JAVA IO流,史上最全面的IO教学啦

    一.IO流是什么 惯例引用百科的回答流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...

  9. python怎么输入分数_在python中怎么表示分数

    在python中怎么表示分数 发布时间:2020-07-10 17:07:46 来源:亿速云 阅读:180 今天就跟大家聊聊有关在python中怎么表示分数,可能很多人都不太了解,为了让大家更加了解, ...

最新文章

  1. PCL:求两条直线交点
  2. 大数据分布式集群搭建(5)
  3. 两分钟用C#搭建IE BHO勾子, 窃取密码
  4. html div box,html – 为转换后的div添加box-shadow
  5. php页面转发,php如何实现页面路由转发
  6. mysql系列_Mysql系列(三)—— Mysql字符集和比较规则
  7. win7系统临时文件夹的打开方法
  8. 经纬度转小数格式 java_怎么把经纬度转成小数
  9. RouterOS 端口映射
  10. Google Code 中使用svn工具说明
  11. [渝粤教育] 西南科技大学 语言学概论(英语) 在线考试复习资料
  12. 由pushViewController说起可能出线的各种死法
  13. U盘系统、格式化等问题的解决办法
  14. 程序员七夕特刊,绝无狗粮添加剂
  15. wine 安装(ubuntu中安装windows下软件)
  16. 利用积分区域的对称性计算重积分
  17. 远程服务器怎么能显示电脑u盘,怎样在远程服务器上看到u盘
  18. JER与JDK区别以及JDK的安装配置(2021-06-13 Win10)
  19. 华为RIM设备短路故障
  20. 荣耀搭载鸿蒙计划,荣耀V40照常发布,将更换操作系统,同nova8搭载鸿蒙2.0发布...

热门文章

  1. 有n个人围成一圈 顺序排号 java_java有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出...
  2. NandFlash基础知识-K9F2G08
  3. 数据库性能调优架构师所需的skillset
  4. 电脑加载,电脑加载慢又卡怎么办
  5. IT运维的相关需求分析报告(第一篇)
  6. 《计算机体系结构量化研究方法》1.8 性能的测量、报告和汇总
  7. SDUST 第二次实验
  8. 完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数
  9. dhcp服务器修改dns设置方法,dhcp服务器的dns设置方法
  10. python向自己qq邮件发信息_python实现自动向QQ邮箱发送天气预报邮件