摘要:本題要求編寫程序,計(jì)算個(gè)有理數(shù)的和差積商。輸出格式分別在行中按照有理數(shù)運(yùn)算符有理數(shù)結(jié)果的格式順序輸出個(gè)有理數(shù)的和差積商。注意輸出的每個(gè)有理數(shù)必須是該有理數(shù)的最簡(jiǎn)形式,其中是整數(shù)部分,是最簡(jiǎn)分?jǐn)?shù)部分若為負(fù)數(shù),則須加括號(hào)若除法分母為,則輸出。
本題要求編寫程序,計(jì)算 2 個(gè)有理數(shù)的和、差、積、商。
輸入格式:
輸入在一行中按照 a1/b1 a2/b2 的格式給出兩個(gè)分?jǐn)?shù)形式的有理數(shù),其中分子和分母全是整型范圍內(nèi)的整數(shù),負(fù)號(hào)只可能出現(xiàn)在分子前,分母不為 0。
輸出格式:
分別在 4 行中按照 有理數(shù)1 運(yùn)算符 有理數(shù)2 = 結(jié)果 的格式順序輸出 2 個(gè)有理數(shù)的和、差、積、商。注意輸出的每個(gè)有理數(shù)必須是該有理數(shù)的最簡(jiǎn)形式 k a/b,其中 k 是整數(shù)部分,a/b 是最簡(jiǎn)分?jǐn)?shù)部分;若為負(fù)數(shù),則須加括號(hào);若除法分母為 0,則輸出 Inf。題目保證正確的輸出中沒有超過整型范圍的整數(shù)。
輸入樣例 1:
2/3 -4/2
輸出樣例 1:
2/3 + (-2) = (-1 1/3)
2/3 - (-2) = 2 2/3
2/3 * (-2) = (-1 1/3)
2/3 / (-2) = (-1/3)
輸入樣例 2:
5/3 0/6
輸出樣例 2:
1 2/3 + 0 = 1 2/3
1 2/3 - 0 = 1 2/3
1 2/3 * 0 = 0
1 2/3 / 0 = Inf
Think
做除法運(yùn)算時(shí)先要判斷分母。
code
import java.io.*; public class Main { //輾轉(zhuǎn)相除法 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); //最大公約數(shù) //簡(jiǎn)化 a = a / gcd; b = b / gcd; t = Math.abs(a) / b; //整數(shù) 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[] istr = in.readLine().split(" "); String[] a = istr[0].split("/"), b = istr[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.flush(); out.println(A + " - " + B + " = " + calculate(a1*b2-a2*b1,b1*b2)); out.flush(); out.println(A + " * " + B + " = " + calculate(a1*a2,b1*b2)); out.flush(); out.print(A + " / " + B + " = "); out.flush(); 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(); } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77449.html
摘要:中的運(yùn)算符按功能劃分主要分類。算術(shù)運(yùn)算符的優(yōu)先級(jí)浮點(diǎn)數(shù)比較在中,一般不建議直接比較兩個(gè)浮點(diǎn)數(shù)是否相等。還有與二元運(yùn)算符相結(jié)合的賦值運(yùn)算符。與二元運(yùn)算符相結(jié)合的賦值運(yùn)算符有其運(yùn)算即為先兩者進(jìn)行二元操作再賦值給前者。 java中的運(yùn)算符按功能劃分主要分7類。 算術(shù)運(yùn)算符 +, -, *, /, ++, --, % 關(guān)系運(yùn)算符 =, ==, != 布爾邏輯運(yùn)算符 &&, &, |...
摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接智能合約語言教程系列地址類型介紹原文已更新,請(qǐng)讀者前往原文閱讀現(xiàn)在的中文文檔,要么翻譯的太爛,要么太舊,決定重新翻譯下。枚舉類型應(yīng)至少有一名成員。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:智能合約語言 Solidity 教程系列2 - 地址類型介紹原文已更新,請(qǐng)讀者前往原文閱讀 現(xiàn)在的Solidity中文文檔,要么翻譯的太爛,要么太舊,決定重新翻譯下。...
摘要:上一篇文章標(biāo)準(zhǔn)庫內(nèi)置類型邏輯值檢測(cè)布爾運(yùn)算比較下一篇文章標(biāo)準(zhǔn)庫內(nèi)置類型迭代器類型序列類型數(shù)字類型存在三種不同的數(shù)字類型整數(shù)浮點(diǎn)數(shù)和復(fù)數(shù)。標(biāo)準(zhǔn)庫包含附加的數(shù)字類型,如表示有理數(shù)的以及以用戶定制精度表示浮點(diǎn)數(shù)的。 上一篇文章:Python標(biāo)準(zhǔn)庫---9、內(nèi)置類型:邏輯值檢測(cè)、布爾運(yùn)算、比較下一篇文章:Python標(biāo)準(zhǔn)庫---11、內(nèi)置類型:迭代器類型、序列類型 數(shù)字類型 --- int,...
摘要:示例有理數(shù)的算術(shù)有理數(shù)可表示為整數(shù)的比值,并且它組成了實(shí)數(shù)的一個(gè)重要子類。有理數(shù)的值需要兩部分來描述。這里的重要概念是,通過將有理數(shù)表示為整數(shù)的比值,我們能夠完全避免近似問題。返回有理數(shù)的分子。 2.2 數(shù)據(jù)抽象 來源:2.2 Data Abstraction 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 由于我們希望在程序中表達(dá)世界中的大量事物,我們發(fā)現(xiàn)它們的大多數(shù)都具有...
摘要:使用消息傳遞,我們就能使抽象數(shù)據(jù)類型直接擁有行為。構(gòu)造器以類似的方式實(shí)現(xiàn)它在參數(shù)上調(diào)用了叫做的方法。抽象數(shù)據(jù)類型允許我們?cè)跀?shù)據(jù)表示和用于操作數(shù)據(jù)的函數(shù)之間構(gòu)造界限。 2.7 泛用方法 來源:2.7 Generic Operations 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 這一章中我們引入了復(fù)合數(shù)據(jù)類型,以及由構(gòu)造器和選擇器實(shí)現(xiàn)的數(shù)據(jù)抽象機(jī)制。使用消息傳遞,我們就能...
閱讀 3692·2021-10-09 09:44
閱讀 3396·2021-09-22 15:29
閱讀 3150·2019-08-30 15:54
閱讀 3027·2019-08-29 16:19
閱讀 2155·2019-08-29 12:50
閱讀 601·2019-08-26 14:04
閱讀 1707·2019-08-23 18:39
閱讀 1356·2019-08-23 17:59