Java分数的加减乘除
import java.util.Scanner;public class demo {public static class Person{public int molecularone; //分子public int denominatorone; //分母public String symbol;public int moleculartwo;public int denominatortwo;public int resultone=0;public int resulttwo=0;public Person(int nextInt, int nextInt1, String next, int nextInt2, int nextInt3) {molecularone=nextInt ; //分子denominatorone=nextInt1 ; //分母symbol=next ;moleculartwo=nextInt2 ;denominatortwo=nextInt3 ;}//求最小公倍数 static int gcd(int x,int y){int r;while( y!= 0) {r = x%y;x = y;y = r;}return x;}//加法public void addItion() {if (denominatorone == denominatortwo) {resulttwo = denominatortwo;resultone = molecularone + moleculartwo;} else {resulttwo = denominatorone * denominatortwo;resultone = molecularone * denominatortwo + moleculartwo * denominatorone;}int gcd=gcd(resultone ,resulttwo );if(gcd>0||(resultone>0&&resulttwo >0 )||(resultone<0&&resulttwo <0)) {//防止有的数被去符号化resultone = resultone / gcd;resulttwo = resulttwo / gcd;}else {resultone = resultone / -gcd;resulttwo = resulttwo / -gcd;}if (resultone == 0) {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + "0");} else if (resulttwo == 1) {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + resultone );} else {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + resultone + "/" + resulttwo);}}//减法public void subtraction(){if(denominatorone ==denominatortwo ){resulttwo =denominatortwo ;resultone =molecularone -moleculartwo ;}else{resulttwo =denominatorone *denominatortwo ;resultone = (molecularone * denominatortwo) - (moleculartwo * denominatorone);}int gcd=gcd(resultone ,resulttwo );if(gcd>0||(resultone>0&&resulttwo >0 )||(resultone<0&&resulttwo <0)) {resultone = resultone / gcd;resulttwo = resulttwo / gcd;}else {resultone = resultone / -gcd;resulttwo = resulttwo / -gcd;}if (resultone == 0) {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + "0");} else if (resulttwo == 1) {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + resultone );} else {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + resultone + "/" +resulttwo );}}//乘法public void multiplication (){resultone =molecularone *moleculartwo ;resulttwo =denominatorone *denominatortwo ;int gcd=gcd(resultone ,resulttwo );if(gcd>0||(resultone>0&&resulttwo >0 )||(resultone<0&&resulttwo <0)) {resultone = resultone / gcd;resulttwo = resulttwo / gcd;}else {resultone = resultone / -gcd;resulttwo = resulttwo / -gcd;}if (resultone == 0) {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + "0");} else if (resulttwo == 1) {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + resultone );} else {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + resultone + "/" + resulttwo);}}//除法public void division ( ){resultone =molecularone *denominatortwo ;resulttwo =denominatorone *moleculartwo ;int gcd=gcd(resultone ,resulttwo );if(gcd>0||(resultone>0&&resulttwo >0 )||(resultone<0&&resulttwo <0)) {resultone = resultone / gcd;resulttwo = resulttwo / gcd;}else {resultone = resultone / -gcd;resulttwo = resulttwo / -gcd;}if (resultone == 0) {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + "0");} else if (resulttwo == 1) {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + resultone );} else {System.out.println("(" + molecularone + "/" + denominatorone + ")" + symbol + "(" + moleculartwo + "/" + denominatortwo + ")" + "=" + resultone + "/" + resulttwo);}}}public static void main(String[] args) {Scanner cin = new Scanner(System.in);while (cin.hasNext()) {int molecularone= cin.nextInt(); //分子int denominatorone=cin .nextInt() ; //分母String symbol=cin .next() ;int moleculartwo=cin .nextInt() ;int denominatortwo=cin .nextInt() ;Person person = new Person(molecularone ,denominatorone ,symbol ,moleculartwo,denominatortwo );if (symbol .equals("+") ) {person.addItion();} else if (symbol .equals("-") ) {person.subtraction();} else if (symbol .equals("*") ) {person.multiplication();}else if(symbol .equals("/") ) {person.division();}}} }
Java分数的加减乘除相关推荐
- Java语言实现分数的加减乘除
Java语言实现分数的加减乘除 Java: import java.util.Scanner;class Fraction{ // 分数类public int molecule, denominato ...
- 【c】分数类型的定义 c语言分数类型加减乘除的实现
12 14日修改:该代码对于分数的判断不够完整存在一定的 防御性编程问题 事后加以修改 修改后的代码 请查看 分数类型加减乘除的实现 思路: 1.初始化 2.分数的显示 3.分数化简 4.加减乘除实现 ...
- 数学:分数的加减乘除模板
数学:分数的加减乘除 分数的表示 分数的化简 分数的加法 分数的减法 分数的乘法 分数的除法 分数的表示 struct Fraction{ //分数int up, down; //分子,分母 }; 分 ...
- java后端实现加减乘除和比例计算
java后端实现加减乘除和比例计算 在 java.math 包中提供了 API 类 BigDecimal 用来对超过 16位有效位的数进行精确的运算. BigDecimal 所创建的是对象,所以不能使 ...
- 【java面对对象】分数类型加减乘除运算的实现
/**作者:naru* 编写功能:分数类型的加减乘除实现* 本代码并不完美 之后可能会不断完善* 基本思路:利用最小公倍数和最大公约数实现分数的约分* 然后其他均为数学运算* */class Frac ...
- PAT甲级1088 Rational Arithmetic:[C++题解]分数的加减乘除
文章目录 题目分析 题目链接 题目分析 来源:acwing 加减乘除: ab+cd=ad+bcbd\frac{a}{b}+\frac{c}{d}=\frac{ad+bc}{bd}ba+dc=bda ...
- poj 3101 Astronomy (java 分数的最小公倍数 gcd)
题目链接 要用大数,看了别人的博客,用java写的. 题意:求n个运动周期不完全相同的天体在一条直线上的周期. 分析:两个星球周期为a,b.则相差半周的长度为a*b/(2*abs(a-b)),对于n个 ...
- java用流体加减乘除_任意输入两个数,完成加法、减法、乘法、除法运算!(加减乘除运算分别定义四个方法)_学小易找答案...
[简答题]编写程序实现菜单设计 [简答题]一层平面图 [简答题]编写一个程序实现大小写字母转换 [简答题]利用循环语句输出一个五行的等腰三角形,如下图 [简答题]编写一个程序实现交换两个变量的数值. ...
- 如何用java实现加减_用Java实现不用加减乘除做加法操作
面试题1:不用加减乘除,求两个整数的和. import java.util.Scanner; public class GetSum { /** * 不用加减乘除做加法: * 十进制中的18和7相加: ...
- java文档注释加减乘除,java精确的加减乘除
package mathDemo; import java.math.BigDecimal; /** * 目标:封装加减乘除操作的自定义工具类 * 原因:float ,double 只能用来做科学计算 ...
最新文章
- 实施Service Mesh前,你需要考虑这几个问题
- vue xxx was assigned to but it has no setter.
- python soup findall 第几个元素_python – 如何在BeautifulSoup中获取所有父标签的列表?...
- zabbix使用Omsa来监控Dell服务器的硬件信息
- Convolutional networks for fast, energy-efficient neuromorphic computing
- r语言调用python_python3调用R语言干货
- mysql主从北_mysql北非之主从同步
- java实例属性_Java 静态属性与实例属性的初始化
- ArcSDE 10.2 for Oracle 12C安装注意事项
- python语言是 创造的_1.python简介
- 机顶盒系统升级服务器地址,网络机顶盒怎么升级?详细教程分享
- macOS 常用字体下载安装
- TCP和UDP的区别与联系
- JDK的环境变量配置(步骤超级简单)
- python列表如何求增长率_python如何计算环比增长率
- MSOCache文件夹能否删除?
- 白帽杯2022-Misc 游戏秘籍 write-up
- BUAA_2020级(信息大类)数据结构综合作业编程题_文本摘要生成_哈希表
- 程序设计第二十二题 空心三角形
- 前端三件套之JS速成