分数四则运算

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

编写程序,实现两个分数的加减法

Input

输入包含多行数据;

每行数据是一个字符串,格式是"a/boc/d",其中a, b, c, d为数字(每个数字保证为正数并且不存在正号)。o是运算符"+"或者"-","*",""。

数据以EOF结束,输入数据保证合法。

Output

直接输出结果,并且注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数形式。

Sample Input

1/100+3/100

1/4-1/2

1/3-1/3

1/2*2/1

1/2\1/2

Sample Output

1/25

-1/4

0

1

1

讲真这道题信息量蛮大的,学到了好多,比如分割要用“\\”来表示“\”,转义字符要加“\”之类的。

  1. import java.util.Scanner;
  2. public class Main {
  3. public static void main(String[] args) {
  4. Scanner cin = new Scanner(System.in);
  5. str a;
  6. while(cin.hasNext())
  7. {
  8. a = new str(cin.nextLine());
  9. a.get();
  10. a.f();
  11. }
  12. cin.close();
  13. }
  14. }
  15. class str
  16. {
  17. int a,b,c,d;
  18. String st;
  19. String []s;
  20. str(String s)
  21. {
  22. st = s;
  23. }
  24. void get()
  25. {
  26. s = st.split("\\\\|\\*|\\-|/|\\+");
  27. a = Integer.parseInt(s[0]);
  28. b = Integer.parseInt(s[1]);
  29. c = Integer.parseInt(s[2]);
  30. d = Integer.parseInt(s[3]);
  31. }
  32. int gcd(int x,int y)
  33. {
  34. return y==0?x:gcd(y,x%y);
  35. }
  36. void f()
  37. {
  38. int i,x,y;
  39. char f = 0;
  40. x = y = 0;
  41. for(i=0;i<st.length();i++)
  42. {
  43. if(st.charAt(i)=='+'||st.charAt(i)=='-'||st.charAt(i)=='*'||st.charAt(i)=='\\')
  44. {
  45. f = st.charAt(i);
  46. break;
  47. }
  48. }
  49. //System.out.println(f);
  50. if(f=='+')
  51. {
  52. x = a * d + c * b;
  53. y = b * d;
  54. }
  55. else if(f=='-')
  56. {
  57. x = a * d - c * b;
  58. y = b * d;
  59. }
  60. else if(f=='*')
  61. {
  62. x = a * c;
  63. y = b * d;
  64. }
  65. else if(f=='\\')
  66. {
  67. x = a * d;
  68. y = b * c;
  69. }
  70. if(x==0)
  71. {
  72. System.out.println(0);
  73. return;
  74. }
  75. else if(x%y==0)
  76. {
  77. System.out.println(x/y);
  78. return;
  79. }
  80. int ff = 1;
  81. if(x<0)
  82. {
  83. ff = -ff;
  84. x = -x;
  85. }
  86. if(y<0)
  87. {
  88. ff = -ff;
  89. y = -y;
  90. }
  91. int q = gcd(x,y);
  92. x /= q;
  93. y /= q;
  94. System.out.printf("%d/%d\n",x*ff,y);
  95. }
  96. }

Java练习 SDUT-3849_分数四则运算的更多相关文章

  1. 用java具体代码实现分数(即有理数)四则运算

    用java具体代码实现分数(即有理数)四则运算 1,背景 Java老师布置了一个关于有理数运算的题目,因为参考书上有基本代码,所以自己主要是对书上代码做了一点优化,使其用户交互性更加友好以及代码封装性 ...

  2. java实现超大整数加减乘除四则运算

    原理: 用数组存储数字,按照计算法则进行运算. 代码: package com.hdwang; import java.util.regex.Matcher; import java.util.reg ...

  3. 20175226 2018-2019-2《java程序设计》结对编程-四则运算(第二周-阶段总结)

    需求分析(描述自己对需求的理解,以及后续扩展的可能性) 实现一个命令行程序,要求: 自动生成小学四则运算题目(加,减,乘,除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 ...

  4. java实现自动生成小学四则运算——朱庭震,詹祺豪

    组员:朱庭震,詹祺豪 Github地址:https://github.com/ztz1998/second/tree/master 1题目:实现一个自动生成小学四则运算题目的命令行程序. 2说明: 自 ...

  5. 《java程序设计》结对编程-四则运算整体总结

    需求分析(描述自己对需求的理解,以及后续扩展的可能性) 实现一个命令行程序,要求: 自动生成小学四则运算题目(加,减,乘,除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 ...

  6. 20175226 2018-2019-2《java程序设计》结对编程-四则运算(第一周-阶段总结)

    结对编程-四则运算(第一周-阶段总结) 需求分析 实现一个四则运算程序,要求: 自动随机生成小学四则运算题目(加,减,乘,除) 支持整数.真分数且支持多项式 能够利用栈的思想,将中缀转换为后缀表达式 ...

  7. java语言编写矩阵的四则运算

    题目要求如下: 设计程序实现矩阵的四则运算 设计要求: (1) 实现矩阵的四则运算. (2) 考虑实现带变元的矩阵计算. (3)考虑实现矩阵的特征值和特征向量的计算. 我使用java语言写的 目录结构 ...

  8. 《java程序设计》结对编程-四则运算(第一周-阶段总结)

    一.需求分析(描述自己对需求的理解,以及后续扩展的可能性) 实现一个命令行程序,要求: - 自动生成小学四则运算题目(加,减,乘,除) - 支持整数 - 支持多运算符(比如生成包含100个运算符的题目 ...

  9. 第二次作业利用java语言编写计算器进行四则运算

    随着第一次作业的完成,助教 牛老师又布置了第二次作业:用java语言编写一个程序然后进行四则运算用户用键盘输入一个字符来结束程序显示统计结果.一开始看到这个题目我也着实吓了一跳 因为不知道如何下手而且 ...

随机推荐

  1. JosnRpcClient

    <?php /** * Simple JSON-RPC interface. */ namespace org; class JosnRpcClient{ protected $host; pr ...

  2. 通过游戏学python 3.6 第一季 第七章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号

    #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误 ...

  3. webpack打包js,css和图片

    1.webpack打包默认配置文件webpack.config.js 2.打包js文件:有这个文件并配置可以直接在cmd上webpack打包,没有这个文件要在cmd上输入 webpack main.j ...

  4. Chai.js断言库API中文文档

    基于chai.js官方API文档翻译.仅列出BDD风格的expect/should API.TDD风格的Assert API由于不打算使用,暂时不放,后续可能会更新. BDD expect和shoul ...

  5. HDU2056

    /*  * 指数型母函数  */ #include<cstdio> #define mod 100 typedef long long LL;//杭电需用int64 int powerMo ...

  6. Twitter web information

    http://developer.51cto.com/art/201307/404612.htm 150M active users 300K Qps (read, only 6000 write/s ...

  7. Python科学计算生态圈--Pandas

  8. PHP获取真实客户端的真实IP的方法

    REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP.如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP. HTTP_CLIENT_IP 是代理服务器发送的HTTP头. ...

  9. Centos系统Python环境搭建和项目部署

    目录 一.Python 1. 源安装 Python3 2. SCL安装 Python3 3. 虚拟环境venv 4. 安装Flask 5. 安装gunicorn 二.安装Nginx 1. 安装Ngin ...

  10. 数组的方法之(Array.prototype.filter() 方法)

    filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素.     注意: filter() 不会对空数组进行检测.     注意: filter() 不会改变原始 ...