Problem Description

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

Input

输入包含多行数据
每行数据是一个字符串,格式是"a/boc/d"。

其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。

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

Output

对于输入数据的每一行输出两个分数的运算结果。
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数

Example Input

1/8+3/8
1/4-1/2
1/3-1/3

Example Output

1/2
-1/4
0

比四则运算的题要简单,但是完全要自己敲下来还是有点困难;类中引用类型还不太会用

小结:
1.由字符数组转换成整形  
int a=ch[0]-'0';
 
2.由字符串转换成整形
int  a==Integer.parseInt(字符串名);
3.由字符串转换成浮点型
double   d   =   Double.parseDouble(字符串名); 
float   f   =   Float.parseFloat(字符串名);
4.由字符串转换成字符数组
char[] ch =字符串名.toCharArray();
5.求任意两个数的最大公倍数时,要记得比较两个数绝对值的大小;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String str = sc.next();char[] ch = str.toCharArray();int a = ch[0] - '0';int b = ch[2] - '0';int c = ch[4] - '0';int d = ch[6] - '0';Fs fs1 = new Fs(a, b);Fs fs2 = new Fs(c, d);Fs result = new Fs();if (ch[3] == '+') {result = fs1.add(fs2);} else if (ch[3] == '-') {result = fs1.sub(fs2);}if (result.fz % result.fm == 0) {System.out.println(result.fz / result.fm);} else {System.out.println(result.fz + "/" + result.fm);}}sc.close();}
}class Fs {int fz, fm;public Fs(int fz, int fm) {this.fz = fz;this.fm = fm;}public Fs() {}public Fs add(Fs fs) {int newfz = fz * fs.fm + fm * fs.fz;int newfm = fm * fs.fm;int gys = gys(newfz, newfm);return new Fs(newfz / gys, newfm / gys);}public Fs sub(Fs fs) {int newfz = fz * fs.fm - fm * fs.fz;int newfm = fm * fs.fm;int gys = gys(newfz, newfm);return new Fs(newfz / gys, newfm / gys);}public int gys(int a, int b) {int n = Math.max(Math.abs(a),Math.abs(b));int m = Math.min(Math.abs(a),Math.abs(b));int t;while (n!= 0) {t = m % n;m = n;n = t;}return m;}}

分数加减法(Java)acm.sdut相关推荐

  1. 分数加减法 java,Java——分数加减法

    分数加减法 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 编写一个C程序,实现两个分数的加减法 Input 输入包含多 ...

  2. 分数加减法 java,Java练习 SDUT-2253_分数加减法

    ###分数加减法 Time Limit: 1000 ms Memory Limit: 65536 KiB ####Problem Description 编写一个C程序,实现两个分数的加减法 #### ...

  3. 分数加减法 http://acm.nyist.net/JudgeOnline/problem.php?pid=111

    数加减法 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 编写一个C程序,实现两个分数的加减法 输入 输入包含多行数据 每行数据是一个字符串,格式是"a/boc ...

  4. java编写分数加减法_JAVA 分数加减法

    分数加减法 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 编写一个C程序,实现两个分 ...

  5. # 异运算_小学数学整数、小数、分数加减法运算法则及练习(可打印)

    很多孩子的数学不好,尤其是女孩子.家长往往认定为数学不好就是孩子不擅长,能力差. 其实未必,有的孩子数学不好的原因并不在于智商,而是没有理解到数学的方法与逻辑.比如小学的运算中,很多孩子并没有了解到运 ...

  6. Java ACM模式

    Java ACM模式 文章目录 Java ACM模式 1:java.util.* 2:其他 1:java.util.* Scanner reader = new Scanner(System.in); ...

  7. nyoj_111_分数加减法_201311281341

    分数加减法 时间限制:3000 ms  |           内存限制:65535 KB 难度:2 描述 编写一个C程序,实现两个分数的加减法 输入 输入包含多行数据 每行数据是一个字符串,格式是& ...

  8. 从键盘上录入学生人数和每个学生的分数,按分数降序输出所有的分数,java冒泡排序应用

    从键盘上录入学生人数和每个学生的分数,按分数降序输出所有的分数 import java.util.Arrays; import java.util.Scanner;/* * 从键盘上录入学生人数和每个 ...

  9. poj 3979 分数加减法

    分数加减法 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8801   Accepted: 2798 Description ...

最新文章

  1. 小米7的传闻:这是我们迄今为止知道的
  2. 【计算理论】非确定性有限自动机 ( 计算过程 | 计算树 | 确定可接受字符串 | 设计非确定性有限自动机 | 空字符 )
  3. ML之NN:利用神经网络的BP算法解决XOR类(异或非)问题(BP solve XOR Problem)
  4. 搜索推荐炼丹笔记:点击位置偏差的经验比较
  5. 设计把所有的奇数移动到所有偶数前面的算法
  6. python停用词表_多版本中文停用词词表 + 多版本英文停用词词表 + python词表合并程序...
  7. 各个OS关于查看磁盘和wwn号的方法
  8. 如何为复杂页面实现过渡页面
  9. mysql修改有外键约束的表结构
  10. Charles 破解版安装
  11. 存储过程(Stored Procedure)
  12. Linux CentOS 系统实战笔记-基础篇
  13. 最新emoji表情代码大全_中老年表情包:微信朋友圈早晨问候语带图片 最新早上好问候语动态图片大全...
  14. AcWing 1022 宠物小精灵之收服
  15. @Autowired和@Resource区别
  16. 无穷小和无穷大·漫画
  17. 计算机属性安全选项卡,win10系统文件属性没有安全选项卡的图文办法
  18. redis如何清空指定缓存和所有缓存
  19. Python之小数点位数的控制输出
  20. 景安服务器 磁盘挂载 步骤教程

热门文章

  1. Haar Wavelet Transformation
  2. NFS服务器搭建及配置
  3. 关于微信小程序富文本编辑器回显数据初始化editor的时候,页面滑动到最底部了
  4. 目标检测网络指标mAP的测试的python实现
  5. Git 如何退出 git log 状态
  6. 模拟IC设计π模型与T模型
  7. 二十年前的互联网长啥样?你还记得03年的“山寨”淘宝吗
  8. 虚拟数字人遇上ChatGPT,好看的皮囊和有趣的灵魂?
  9. 数据校验码(计算机组成原理)
  10. 20亿行21.3G的文本数据打乱操作只需要2.2G的内存执行19分钟