成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

1034 有理數(shù)四則運(yùn)算 (20 分)java

mikyou / 2416人閱讀

摘要:本題要求編寫程序,計(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

相關(guān)文章

  • java學(xué)習(xí)筆記- 運(yùn)算

    摘要:中的運(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)算符 &&, &, |...

    JellyBool 評(píng)論0 收藏0
  • 智能合約語言Solidity教程系列1 - 類型介紹

    摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接智能合約語言教程系列地址類型介紹原文已更新,請(qǐng)讀者前往原文閱讀現(xiàn)在的中文文檔,要么翻譯的太爛,要么太舊,決定重新翻譯下。枚舉類型應(yīng)至少有一名成員。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:智能合約語言 Solidity 教程系列2 - 地址類型介紹原文已更新,請(qǐng)讀者前往原文閱讀 現(xiàn)在的Solidity中文文檔,要么翻譯的太爛,要么太舊,決定重新翻譯下。...

    andycall 評(píng)論0 收藏0
  • Python標(biāo)準(zhǔn)庫---10、內(nèi)置類型:數(shù)字類型

    摘要:上一篇文章標(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,...

    NotFound 評(píng)論0 收藏0
  • SICP Python 描述 2.2 數(shù)據(jù)抽象

    摘要:示例有理數(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ù)都具有...

    Joonas 評(píng)論0 收藏0
  • SICP Python 描述 2.7 泛用方法

    摘要:使用消息傳遞,我們就能使抽象數(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ī)制。使用消息傳遞,我們就能...

    leanote 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

mikyou

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<