生活随笔
收集整理的這篇文章主要介紹了
PAT_B_1034_Java(20分)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
需要考慮到問題:
乘積超出int范圍真、假分?jǐn)?shù)分母為0
import java
.io
.*
;public class Main {private static long gcd(long a
,long b
) {return b
== 0 ? a
: gcd(b
, a
% b
);}private static String
calculate(long a
,long b
) {if(b
== 0) {return "Inf";}long gcd
,t
,x
;gcd
= gcd(Math
.abs(a
), b
); a
= a
/ gcd
;b
= b
/ gcd
;t
= Math
.abs(a
) / b
; x
= Math
.abs(a
) - t
* b
;if(t
== 0 && x
== 0) {return "0";}if(a
< 0) {if(t
!= 0 && x
!= 0)return "(-"+t
+" "+x
+"/"+b
+")";if(t
!= 0 && x
== 0)return "(-"+t
+")";if(t
== 0 && x
!= 0)return "(-"+x
+"/"+b
+")";} else {if (t
!= 0 && x
!= 0)return t
+" "+x
+"/"+b
;if(t
!= 0 && x
== 0)return String
.valueOf(t
);if(t
== 0 && x
!= 0)return x
+"/"+b
;}return null
;}public static void main(String
[] args
) throws IOException
{BufferedReader in
= new BufferedReader(new InputStreamReader(System
.in
));PrintWriter out
= new PrintWriter(new OutputStreamWriter(System
.out
));String
[] y
= in
.readLine().split(" ");String
[] a
= y
[0].split("/"), b
= y
[1].split("/");long a1
= Long
.parseLong(a
[0]), a2
= Long
.parseLong(b
[0]);long b1
= Long
.parseLong(a
[1]), b2
= Long
.parseLong(b
[1]);String A
,B
;A
= calculate(a1
,b1
);B
= calculate(a2
,b2
);out
.println(A
+ " + " + B
+ " = " + calculate(a1
*b2
+a2
*b1
,b1
*b2
));out
.println(A
+ " - " + B
+ " = " + calculate(a1
*b2
-a2
*b1
,b1
*b2
));out
.println(A
+ " * " + B
+ " = " + calculate(a1
*a2
,b1
*b2
));out
.print(A
+ " / " + B
+ " = ");if(a2
< 0) {out
.print(calculate(a1
* b2
* a2
/ Math
.abs(a2
) , b1
* Math
.abs(a2
)));} else {out
.print(calculate(a1
* b2
, b1
* a2
));}out
.flush();}
}
總結(jié)
以上是生活随笔為你收集整理的PAT_B_1034_Java(20分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。