Java藍橋杯14年第五題
Java有理數類
有理數就是可以表示為兩個整數的比值的數字。一般情況下,我們用近似的小數表示。但有些
時候,不允許出現誤差,必須用兩個整數來表示一個有理數。
這時,我們可以建立一個“有理數類”,下面的程式碼初步實現了這個目標。為了簡明,它只提
供了加法和乘法運算。
class Rational {
private long ra;
private long rb;
private long gcd(long a, long b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
public Rational(long a, long b) {
ra = a;
rb = b;
long k = gcd(ra, rb);
if (k > 1) { // 需要約分
ra /= k;
rb /= k;
}
}
// 加法
public Rational add(Rational x) {
return ________________________________________; // 填空位置
}
// 乘法
public Rational mul(Rational x) {
return new Rational(ra * x.ra, rb * x.rb);
}
public String toString() {
if (rb == 1)
return "" + ra;
return ra + "/" + rb;
}
}
使用該類的示例:
Rational a = new Rational(1,3);
Rational b = new Rational(1,6);
Rational c = a.add(b);
System.out.println(a + “+” + b + “=” + c);
public static void main(String[] args) {
// TODO Auto-generated method stub
Rational a = new Rational(1, 3);
Rational b = new Rational(1, 6);
Rational c = a.add(b);
System.out.println(a + "+" + b + "=" + c);
}
}
class Rational {
private long ra;
private long rb;
private long gcd(long a, long b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
public Rational(long a, long b) {
ra = a;
rb = b;
long k = gcd(ra, rb);
if (k > 1) { // 需要約分
ra /= k;
rb /= k;
}
}
// 加法
public Rational add(Rational x) {
return new Rational(x.ra * rb + ra * x.rb, x.rb * rb); // 填空位置
}
// 乘法
public Rational mul(Rational x) {
return new Rational(ra * x.ra, rb * x.rb);
}
public String toString() {
if (rb == 1)
return "" + ra;
return ra + "/" + rb;
}
相關文章
- 藍橋杯第五屆省賽題目及題解
- 藍橋杯真題
- 藍橋杯 分巧克力(Java)Java
- 藍橋杯-座次問題
- 藍橋杯-日期問題
- [藍橋杯][2014年第五屆真題]地宮取寶
- 藍橋杯
- 2014年第五屆藍橋杯省賽試題及詳解(Java本科C組)Java
- 藍橋杯全排列專題
- 2013年藍橋杯真題
- 藍橋杯例題-快速分揀
- 藍橋杯題目編號1265
- 藍橋杯真題:純質數
- 藍橋杯 (java) 第39級階梯Java
- 藍橋杯模擬題——長草問題
- 藍橋杯省賽真題2013題解
- 【藍橋杯】試題 歷屆試題 剪格子(python解法+java解法)PythonJava
- 【題解】爬山 藍橋杯2024省B
- 【藍橋杯】練習題目彙總
- 2013藍橋杯題解c++A組C++
- 藍橋杯刷題-乘積尾零
- 藍橋杯 買瓜
- 藍橋杯-分巧克力
- 藍橋杯-N皇后
- 藍橋杯 剪格子
- 藍橋杯第五屆JavaC組楊輝三角問題解決方法Java
- 藍橋杯演算法提高——字串匹配(Java)演算法字串匹配Java
- 閒聊藍橋杯JAVA - 生成迴文數Java
- 2013藍橋杯題解c組C++C++
- 藍橋杯練習系統題目集
- 藍橋杯真題之錯誤票據
- 藍橋杯-長草(BFS)
- 藍橋杯-螞蟻感冒
- 藍橋杯-帶分數
- 藍橋杯-翻硬幣
- 藍橋杯 計算方程
- 藍橋杯-排列序數
- 如何準備藍橋杯