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;
}
相關文章
- 2014年第五屆藍橋杯省賽試題及詳解(Java本科C組)Java
- 藍橋杯真題
- 太陽(藍橋杯14屆)
- 藍橋杯年號字串字串
- 藍橋杯-座次問題
- 藍橋杯-日期問題
- 2012年 藍橋杯預賽 java 本科 題目Java
- 藍橋杯 排序排序
- 藍橋杯 分巧克力(Java)Java
- 藍橋杯例題-快速分揀
- 第14屆藍橋杯B組國賽
- 藍橋杯2014年第五屆決賽C_C++程式設計本科B組C++程式設計
- 問題 1462: [藍橋杯][基礎練習VIP]Huffuman樹
- 藍橋杯第五屆JavaC組楊輝三角問題解決方法Java
- 藍橋杯 (java) 第39級階梯Java
- 藍橋杯——Java基礎(進位制)Java
- 藍橋杯之特殊迴文數JAVAJava
- 藍橋杯-N皇后
- 藍橋杯演算法提高——字串匹配(Java)演算法字串匹配Java
- 閒聊藍橋杯JAVA - 生成迴文數Java
- 藍橋杯 演算法訓練 K好數(Java解題)演算法Java
- 藍橋杯-帶分數
- 藍橋杯-翻硬幣
- 藍橋杯-螞蟻感冒
- 藍橋杯 計算方程
- 藍橋杯-長草(BFS)
- 藍橋杯-班級活動
- TODO -藍橋杯2018年A組-付賬問題
- 藍橋杯練習系統題目集
- 藍橋杯題目編號1265
- 【藍橋杯】試題 歷屆試題 剪格子(python解法+java解法)PythonJava
- 藍橋杯歷年(省賽)試題彙總及試題詳解
- 藍橋杯 (java)演算法訓練 數對Java演算法
- 藍橋杯2023年A組-試題A-幸運數
- 2013藍橋杯題解c++A組C++
- 【題解】爬山 藍橋杯2024省B
- 【每週例題】藍橋杯 C++ 多數C++
- 藍橋杯——查詢的妙趣