java编写分数加减法_JAVA 分数加减法
分数加减法
Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic
Problem Description
编写一个C程序,实现两个分数的加减法
Input
输入包含多行数据
每行数据是一个字符串,格式是"a/boc/d"。
其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。
数据以EOF结束
输入数据保证合法
Output
对于输入数据的每一行输出两个分数的运算结果。
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数
Sample Input
1/8+3/8
1/4-1/2
1/3-1/3
Sample Output
1/2
-1/4
0
import java.util.*;
class Cave{
public int sub(int m, int n) {
int t, r, x = m, y = n;
if(m < n) {
t = m;
m = n;
n = t;
}
while(n != 0) {
r = m%n;
m = n;
n = r;
}
return x*y/m;
}
public int sub1(int m, int n) {
int t, r;
if(m < n) {
t = m;
m = n;
n = t;
}
while(n != 0) {
r = m%n;
m = n;
n = r;
}
return m;
}
}
public class Main {
public static void main(String args[]) {
Scanner cin = new Scanner(System.in);
while(cin.hasNext()) {
String a = cin.nextLine();
int b[] = new int[4];
b[0] = a.charAt(0)-'0';
b[1] = a.charAt(2)-'0';
b[2] = a.charAt(4)-'0';
b[3] = a.charAt(6)-'0';
Cave c = new Cave();
if(a.charAt(3) == '+') {
//先找出两个分母的最小公倍数进行通分
int t = c.sub(b[1], b[3]);
//根据分母将分子进行相应的倍数变化
b[0] *= t/b[1];
b[2] *= t/b[3];
b[0] += b[2];
b[1] = t;
if(b[0] == 0) {
System.out.println(0);
continue;
}
else {
//找到分子分母的最大公约数进行约分
t = c.sub1(b[0], b[1]);
b[0] /= t;
b[1] /= t;
}
}
else if(a.charAt(3) == '-') {
int t = c.sub(b[1], b[3]);
b[0] *= t/b[1];
b[2] *= t/b[3];
b[0] -= b[2];
b[1] = t;
if(b[0] == 0) {
System.out.println(0);
continue;
}
else {
t = c.sub1(b[0], b[1]);
b[0] /= t;
b[1] /= t;
}
}
if(b[0]<0&&b[1]<0) {//如果两个数都是负数
if(b[1] == -1) {//如果分母是-1,只输出分子
System.out.println(b[0]*(-1));
}
else {
System.out.println(b[0]*(-1)+"/"+b[1]*(-1));
}
}
else if(b[0] > 0 && b[1] < 0) {//分子分母一正一负
if(b[1] == -1) {//如果分母是-1,只输出分子
System.out.println(b[0]*(-1));
}
else {
System.out.println(b[0]*(-1)+"/"+b[1]*(-1));
}
}
else if(b[0] < 0 && b[1] > 0) {//分子分母一正一负
if(b[1] == 1) {//如果分母是1,只输出分子
System.out.println(b[0]);
}
else {
System.out.println(b[0]+"/"+b[1]);
}
}
else{//分子分母都是正数
if(b[1] == 1) {//如果分母是1,只输出分子
System.out.println(b[0]);
}
else {
System.out.println(b[0]+"/"+b[1]);
}
}
}
}
}
java编写分数加减法_JAVA 分数加减法相关推荐
- java编写的浏览器_Java编写简单的网页浏览器
时间:2019-01-25 概述:网页浏览器 Web 浏览器 用Java语言编写实现一个简单的WEB浏览器,我们经常要在Internet 上浏览网页,这就需要浏览器,目前使用比较广泛的是Interne ...
- java编写十个评委_Java题 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分...
展开全部 //希望你看完采纳 谢谢 #include #define num 10 // 十个评委 void star(void); //打印星号 v ...
- java编写四则运算代码_java编写四则运算
GitHub项目地址:https://github.com/TUOZF/test.git 一.需求分析 程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算 ...
- 用java编写cs游戏_Java CS训练小游戏
点10次绿快,看能点中几次 实现了最核心的功能,大家可以看源代码去扩展 1.[文件] CSAct.java ~ 262B 下载(238) package CSTrainer; public ...
- java编写限制密码_java – 用户’root’@’localhost’拒绝访问(使用密码:YES)
我想连接我的本地MYSQL数据库,它与XAMP服务器一起安装.我创建了一个新用户,即"NewUser",其密码为"password".我给了这个用户所有的特权. ...
- java编写学生管理系统_Java实现学生管理系统
导读热词 项目描述:通过管理员帐号登录,对学员信息进行管理.可以实现学员信息的增加.修改.删除.查询. 知识点:数组.do{}while循环.for循环.if语句.switch条件语句 学生管理系统的 ...
- java编写单词数_JAVA flink小试——单词计数
本文用java来实现一个简单的fink计数单词. 本文写了两个flink版本,一个普通版本,一个lambda版本.有以下注意点: 写法差异,lambda需要调用return方法,而普通版本是不需要的. ...
- java 编写 servlet 程序_Java技术分享:如何编写servlet程序
身为计算机专业的我,从接触java至今,已经有七年之久,从最开始的小白到现在的大白,这是一个漫长而曲折的历程. 大学刚接触Java这个学科时,一点儿都不理解java是要干嘛的,只知道学起来肯定不容易, ...
- Java编写超市购物_Java实现超市购物程序设计
超市购物程序设计 //超市购物程序设计 //编写一个超市购物程序,实现超市购物功能.购物时,如果购物者所要购买的商品在超市中有,则提示购物者买到了某商品,如果没有购物者所需的商品,则提示购物者白跑了一 ...
最新文章
- 使用 Python 和 OpenCV 构建 SET 求解器
- 摊牌了:我就靠这几点,搞定了算法面试官
- idea没有错误出现红色波浪线怎么去掉?
- 【CSS3】好玩的动画线框
- jdk动态代理与cglib动态代理--InvocationHandler--MethodInterceptor
- HDU-3480 Division (四边形不等式优化DP)
- Django 笔记3 -- URL
- apache php 单入口,apache配置php实现单一入口方法
- 缓冲区溢出漏洞攻击演示实验(CProxy 6.2缓冲区溢出漏洞)
- iphone模拟器快捷键使用
- SAP OData的CSRF token在ABAP Netweaver服务器上是怎么生成的
- Android开发笔记(一百二十九)使用变换图形
- Silverlight 4+RIA Services–搜索引擎优化(SEO)
- 在SSRS报表中,显示图片
- wchar_t转为char*
- cp105b linux 驱动,富士施乐 DocuPrint CP105b驱动
- 手机号码好坏什么软件测试,测试你的手机号码好不好(很准哦)
- QC4+充电协议_一文看懂各家充电协议!总算彻底理清了
- 2022年成考(专升本)考试政治练习题及答案
- 黑吃黑第一季/全集Banshee迅雷下载