简单的Java程序:从零开始学习-小数转化为分数

Sachi ·
更新时间:2024-11-14
· 922 次阅读

写在前面的话:一个月没有写博客了,赶快进来汇报一下这一个月我都做了些什么。考研专业:书单完成了两本,其中一本比较有分量的专业书打算再读一遍,这一遍着重梳理专业词汇;网课完结了一门,第二门进度一半,打算月中完结,进入到第三门实验中(或者咨询的那门,再看)专业课:计组目前在搁置中,不想去动,自从进入CPU章节之后就开始听天书,硬件我真的搞不懂,好难;前天搭建数据库搞了一下午,emmm大概有几次真的不想做了,不停地找博客来对应自己的问题,最后发现能发现问题并解决的人真的只能靠自己。以及准备开学,去直面即将来临的各门考试。
这个月开始怀疑自己的选择到底正不正确,以及自己是不是一个眼高手低、只会逃避的人,渐渐在书中坚定了意志,但是还是没有得到答案,那么我将会一直追问下去,如果没有人给我答案,那我就自己去寻找。
大概关于人生这条路,每个人都充满了疑惑,也没人能够回答我。

“我不相信掌纹能带给我什么,我只相信十指握成拳头的力量,它能带我创造一个全新的世界。”

这次没有什么复杂的类,只是一个我认为比较有趣的思维转换,刚开始解决这道题并不是用的这种算法,就一直出现精度错误,跳出来固有思维,又开始感叹,能放弃固有思维真的是一件很不容易的事情。
但很幸运,我掌握了这种能力。

No.11 小数转换为分数
题目:从标准输入中输入一个小数,编写程序将其转换成相应的分数显示,即转换为几又几分之几。
要求:
1、输入的小数包括整数部分、小数点和小数部分;整数部分和小数部分最多有7位数字;整数部分可以为0,若整数部分大于等于1,则其最高位不为0;小数部分的末尾数字不为零。
2、输出的分数应为最简分数,由三个数字组成:第一个数字代表整数部分(若分数小于1,则为0,否则输出的整数的最高位不为0),第二个数字代表分子,第三个数字代表分母,分子比分母小且不能再约分。

import java.util.Scanner; public class Circle { public static void main(String[] args) { Scanner in = new Scanner(System.in); String n = in.next(); String str1 = null, str2 = null; int i, j, c; for(i = 0; i < n.length(); i++) { if(n.charAt(i) == '.') { str1 = n.substring(0, i); str2 = n.substring(i + 1); break; } } i = str2.length(); c = (int) Math.pow(10, i); int a = Integer.parseInt(str2); int b = Integer.parseInt(str1); for(j = 2; j <= a; j++) { if((a % j == 0) && (c % j == 0)) { a = a / j; c = c / j; j = 1; } } System.out.println(b + " " + a + " " + c); } } laoleileilei 原创文章 7获赞 6访问量 775 关注 私信 展开阅读全文
作者:laoleileilei



JAVA 学习 java程序

需要 登录 后方可回复, 如果你还没有账号请 注册新账号