分数加减法(Java)acm.sdut
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
比四则运算的题要简单,但是完全要自己敲下来还是有点困难;类中引用类型还不太会用
float f = Float.parseFloat(字符串名);
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相关推荐
- 分数加减法 java,Java——分数加减法
分数加减法 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 编写一个C程序,实现两个分数的加减法 Input 输入包含多 ...
- 分数加减法 java,Java练习 SDUT-2253_分数加减法
###分数加减法 Time Limit: 1000 ms Memory Limit: 65536 KiB ####Problem Description 编写一个C程序,实现两个分数的加减法 #### ...
- 分数加减法 http://acm.nyist.net/JudgeOnline/problem.php?pid=111
数加减法 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 编写一个C程序,实现两个分数的加减法 输入 输入包含多行数据 每行数据是一个字符串,格式是"a/boc ...
- java编写分数加减法_JAVA 分数加减法
分数加减法 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 编写一个C程序,实现两个分 ...
- # 异运算_小学数学整数、小数、分数加减法运算法则及练习(可打印)
很多孩子的数学不好,尤其是女孩子.家长往往认定为数学不好就是孩子不擅长,能力差. 其实未必,有的孩子数学不好的原因并不在于智商,而是没有理解到数学的方法与逻辑.比如小学的运算中,很多孩子并没有了解到运 ...
- Java ACM模式
Java ACM模式 文章目录 Java ACM模式 1:java.util.* 2:其他 1:java.util.* Scanner reader = new Scanner(System.in); ...
- nyoj_111_分数加减法_201311281341
分数加减法 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 编写一个C程序,实现两个分数的加减法 输入 输入包含多行数据 每行数据是一个字符串,格式是& ...
- 从键盘上录入学生人数和每个学生的分数,按分数降序输出所有的分数,java冒泡排序应用
从键盘上录入学生人数和每个学生的分数,按分数降序输出所有的分数 import java.util.Arrays; import java.util.Scanner;/* * 从键盘上录入学生人数和每个 ...
- poj 3979 分数加减法
分数加减法 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8801 Accepted: 2798 Description ...
最新文章
- 小米7的传闻:这是我们迄今为止知道的
- 【计算理论】非确定性有限自动机 ( 计算过程 | 计算树 | 确定可接受字符串 | 设计非确定性有限自动机 | 空字符 )
- ML之NN:利用神经网络的BP算法解决XOR类(异或非)问题(BP solve XOR Problem)
- 搜索推荐炼丹笔记:点击位置偏差的经验比较
- 设计把所有的奇数移动到所有偶数前面的算法
- python停用词表_多版本中文停用词词表 + 多版本英文停用词词表 + python词表合并程序...
- 各个OS关于查看磁盘和wwn号的方法
- 如何为复杂页面实现过渡页面
- mysql修改有外键约束的表结构
- Charles 破解版安装
- 存储过程(Stored Procedure)
- Linux CentOS 系统实战笔记-基础篇
- 最新emoji表情代码大全_中老年表情包:微信朋友圈早晨问候语带图片 最新早上好问候语动态图片大全...
- AcWing 1022 宠物小精灵之收服
- @Autowired和@Resource区别
- 无穷小和无穷大·漫画
- 计算机属性安全选项卡,win10系统文件属性没有安全选项卡的图文办法
- redis如何清空指定缓存和所有缓存
- Python之小数点位数的控制输出
- 景安服务器 磁盘挂载 步骤教程