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分数的加减乘除相关推荐

  1. Java语言实现分数的加减乘除

    Java语言实现分数的加减乘除 Java: import java.util.Scanner;class Fraction{ // 分数类public int molecule, denominato ...

  2. 【c】分数类型的定义 c语言分数类型加减乘除的实现

    12 14日修改:该代码对于分数的判断不够完整存在一定的 防御性编程问题 事后加以修改 修改后的代码 请查看 分数类型加减乘除的实现 思路: 1.初始化 2.分数的显示 3.分数化简 4.加减乘除实现 ...

  3. 数学:分数的加减乘除模板

    数学:分数的加减乘除 分数的表示 分数的化简 分数的加法 分数的减法 分数的乘法 分数的除法 分数的表示 struct Fraction{ //分数int up, down; //分子,分母 }; 分 ...

  4. java后端实现加减乘除和比例计算

    java后端实现加减乘除和比例计算 在 java.math 包中提供了 API 类 BigDecimal 用来对超过 16位有效位的数进行精确的运算. BigDecimal 所创建的是对象,所以不能使 ...

  5. 【java面对对象】分数类型加减乘除运算的实现

    /**作者:naru* 编写功能:分数类型的加减乘除实现* 本代码并不完美 之后可能会不断完善* 基本思路:利用最小公倍数和最大公约数实现分数的约分* 然后其他均为数学运算* */class Frac ...

  6. PAT甲级1088 Rational Arithmetic:[C++题解]分数的加减乘除

    文章目录 题目分析 题目链接 题目分析 来源:acwing 加减乘除: ab+cd=ad+bcbd\frac{a}{b}+\frac{c}{d}=\frac{ad+bc}{bd}ba​+dc​=bda ...

  7. poj 3101 Astronomy (java 分数的最小公倍数 gcd)

    题目链接 要用大数,看了别人的博客,用java写的. 题意:求n个运动周期不完全相同的天体在一条直线上的周期. 分析:两个星球周期为a,b.则相差半周的长度为a*b/(2*abs(a-b)),对于n个 ...

  8. java用流体加减乘除_任意输入两个数,完成加法、减法、乘法、除法运算!(加减乘除运算分别定义四个方法)_学小易找答案...

    [简答题]编写程序实现菜单设计 [简答题]一层平面图 [简答题]编写一个程序实现大小写字母转换 [简答题]利用循环语句输出一个五行的等腰三角形,如下图 [简答题]编写一个程序实现交换两个变量的数值. ...

  9. 如何用java实现加减_用Java实现不用加减乘除做加法操作

    面试题1:不用加减乘除,求两个整数的和. import java.util.Scanner; public class GetSum { /** * 不用加减乘除做加法: * 十进制中的18和7相加: ...

  10. java文档注释加减乘除,java精确的加减乘除

    package mathDemo; import java.math.BigDecimal; /** * 目标:封装加减乘除操作的自定义工具类 * 原因:float ,double 只能用来做科学计算 ...

最新文章

  1. 实施Service Mesh前,你需要考虑这几个问题
  2. vue xxx was assigned to but it has no setter.
  3. python soup findall 第几个元素_python – 如何在BeautifulSoup中获取所有父标签的列表?...
  4. zabbix使用Omsa来监控Dell服务器的硬件信息
  5. Convolutional networks for fast, energy-efficient neuromorphic computing
  6. r语言调用python_python3调用R语言干货
  7. mysql主从北_mysql北非之主从同步
  8. java实例属性_Java 静态属性与实例属性的初始化
  9. ArcSDE 10.2 for Oracle 12C安装注意事项
  10. python语言是 创造的_1.python简介
  11. 机顶盒系统升级服务器地址,网络机顶盒怎么升级?详细教程分享
  12. macOS 常用字体下载安装
  13. TCP和UDP的区别与联系
  14. JDK的环境变量配置(步骤超级简单)
  15. python列表如何求增长率_python如何计算环比增长率
  16. MSOCache文件夹能否删除?
  17. 白帽杯2022-Misc 游戏秘籍 write-up
  18. BUAA_2020级(信息大类)数据结构综合作业编程题_文本摘要生成_哈希表
  19. 程序设计第二十二题 空心三角形
  20. 前端三件套之JS速成

热门文章

  1. Springboot集成Swagger接口测试工具
  2. 数据可视化的目的 ECharts的基本使用步骤
  3. 实用前端可视化工具库
  4. PIC单片机-Mplab的使用与实践
  5. 为什么你写了一万小时的代码,却没能成为架构师?| 程序员有话说
  6. windows NT的安全性
  7. vscode返回快捷键
  8. windows10 卓越性能模式
  9. r语言 linux plot,详解R语言plot函数参数合集
  10. 2000级2班同学聚会邀请函