第1周編程題

題目?jī)?nèi)容:
設(shè)計(jì)一個(gè)表示分?jǐn)?shù)的類Fraction。這個(gè)類用兩個(gè)int類型的變量分別表示分子和分母。
這個(gè)類的構(gòu)造函數(shù)是:

Fraction(int a, int b)
構(gòu)造一個(gè)a/b的分?jǐn)?shù)。

這個(gè)類要提供以下的功能:

double toDouble();
將分?jǐn)?shù)轉(zhuǎn)換為double
Fraction plus(Fraction r);
將自己的分?jǐn)?shù)和r的分?jǐn)?shù)相加,產(chǎn)生一個(gè)新的Fraction的對(duì)象。注意小學(xué)四年級(jí)學(xué)過(guò)兩個(gè)分?jǐn)?shù)如何相加的哈。
Fraction multiply(Fraction r);
將自己的分?jǐn)?shù)和r的分?jǐn)?shù)相乘,產(chǎn)生一個(gè)新的Fraction的對(duì)象。
void print();
將自己以“分子/分母”的形式輸出到標(biāo)準(zhǔn)輸出,并帶有回車換行。如果分?jǐn)?shù)是1/1,應(yīng)該輸出1。當(dāng)分子大于分母時(shí),不需要提出整數(shù)部分,即31/30是一個(gè)正確的輸出。

注意,在創(chuàng)建和做完運(yùn)算后應(yīng)該化簡(jiǎn)分?jǐn)?shù)為最簡(jiǎn)形式。如2/4應(yīng)該被化簡(jiǎn)為1/2。

你寫的類要和以下的代碼放在一起,并請(qǐng)勿修改這個(gè)代碼:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    Fraction a = new Fraction(in.nextInt(), in.nextInt());
    Fraction b = new Fraction(in.nextInt(),in.nextInt());
    a.print();
    b.print();
    a.plus(b).print();
    a.multiply(b).plus(new Fraction(5,6)).print();
    a.print();
    b.print();
    in.close();
}

}

注意,你的類的定義應(yīng)該這樣開(kāi)始:

class Fraction {

也就是說(shuō),在你的類的class前面不要有public。

輸入格式:
程序運(yùn)行時(shí)會(huì)得到四個(gè)數(shù)字,分別構(gòu)成兩個(gè)分?jǐn)?shù),依次是分子和分母。

輸出格式:
輸出一些算式。這些輸入和輸出都是由Main類的代碼完成的,你的代碼不要做輸入和輸出。

輸入樣例:
2 4 1 3

輸出樣例:
1/2
1/3
5/6
1
1/2
1/3

題解


import java.util.Scanner;

public class New {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Fraction a = new Fraction(in.nextInt(), in.nextInt());
        Fraction b = new Fraction(in.nextInt(), in.nextInt());
        a.print();
        b.print();
        a.plus(b).print();
        a.multiply(b).plus(new Fraction(5, 6)).print();
        a.print();
        b.print();
        in.close();
    }

}

class Fraction {

    private int a, b;

    public Fraction(int a, int b) {
        this.a = a;
        this.b = b;
    }

    double toDouble() {
        return 1.0 * a / b;
    }

    public Fraction plus(Fraction r) {
        int i = this.a * r.b + this.b * r.a;
        int j = this.b * r.b;
        return new Fraction(i, j);
    }

    public Fraction multiply(Fraction r) {
        int i = this.a * r.a;
        int j = this.b * r.b;
        return new Fraction(i, j);
    }

    void print() {
        int a, b;               
        int t;              
        a = this.a;
        b = this.b;
        while (b != 0) {    //輾轉(zhuǎn)相除法求最大公約數(shù)
            t = a % b;
            a = b;
            b = t;
        }
        this.a /= a;
        this.b /= a;
        if (this.a == this.b)
            System.out.println(1);
        else
            System.out.println(this.a + "/" + this.b);

    }

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、 分?jǐn)?shù) 題目?jī)?nèi)容: 我們?cè)陬}目說(shuō)明中給出了一部分代碼,你需要在這部分代碼的基礎(chǔ)上,按照題目說(shuō)明編寫代碼,然后將...
    godfrey_88閱讀 5,081評(píng)論 1 4
  • 1分?jǐn)?shù)(10分) 題目?jī)?nèi)容:設(shè)計(jì)一個(gè)表示分?jǐn)?shù)的類Fraction。這個(gè)類用兩個(gè)int類型的變量分別表示分子和分母。...
    多喝酸奶閱讀 708評(píng)論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,741評(píng)論 18 399
  • ·不敢說(shuō)擁有你,只能說(shuō)你在我心里· 語(yǔ)文老師說(shuō)了這樣一個(gè)故事。一對(duì)男女,相互戀慕卻都未曾開(kāi)口言明。二人止步戀人未滿...
    格里菲斯的夕陽(yáng)閱讀 550評(píng)論 2 3
  • 昨天無(wú)意中略過(guò)了一個(gè)北京地鐵男子罵人事件的標(biāo)題。本來(lái)我不太關(guān)注這類新聞,但是今早發(fā)現(xiàn)鋪天蓋地的新聞都在說(shuō)這件事。而...
    火山House閱讀 217評(píng)論 0 0

友情鏈接更多精彩內(nèi)容