编写一个程序,实现两个分数的加减法
输入
输入包含多行数据
每行数据是一个字符串,格式是"a/boc/d"。
其中a, b,c, d是一个0-9的整数。o是运算符"+"或者"-"。
数据以EOF结束
输入数据保证合法
输出
对于输入数据的每一行输出两个分数的运算结果。
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数
样例输入
1/8+3/8
1/4-1/2
1/3-1/3
样例输出
1/2
-1/4
0
public static void main(String[] args) { Scanner in = new Scanner(System.in); String str; int n1,n2,n3,d1,d2,d3,op,x,y,z; boolean neg = false; while(in.hasNext()){ neg = false; str = in.next(); if(str.equals("EOF")){ break; } op = 1; n1 = str.charAt(0)-'0'; d1 = str.charAt(2)-'0'; if(str.charAt(3)=='-'){ op = -1; } n2 = str.charAt(4)-'0'; d2 = str.charAt(6)-'0'; n3 = n1*d2+op*n2*d1; d3 = d1*d2; if(n3==0){ System.out.println("0"); continue; } if(n3<0){ neg = true; } n3 = Math.abs(n3); d3 = Math.abs(d3); x = n3>d3? n3:d3; y = n3<d3? n3:d3; z = x%y; while(z!=0){ x = y; y = z; z = x%y; } n3 = n3/y; d3 = d3/y; if(neg){ System.out.print('-'); } if(d3 == 1){ System.out.println(n3); } else { System.out.println(n3+"/"+d3); } } }
