分数加减法

    xiaoxiao2021-03-25  98

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

    输入

    输入包含多行数据

    每行数据是一个字符串,格式是"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); } } }

    转载请注明原文地址: https://ju.6miu.com/read-23564.html

    最新回复(0)