記事のディレクトリ
有理数
-
有理数は、2つの整数の比率として表すことができる数です。
-
通常の状況では、おおよその小数を使用します。ただし、エラーが許可されない場合があり、有理数を表すために2つの整数を使用する必要があります
以分数的形式
。 -
このとき、「有理数クラス」を作成することができ、次のコードは最初にこの目標を達成します。簡単にするために、加算と乗算の演算のみを提供します。空欄に記入してください〜
// 加法
public Rational add(Rational x){
return __________________________; // 填空部分
}
ワンステップ分析
演算子/
:除算演算子。演算の結果は切り捨てられます。
演算子%
:モジュロ演算、
(1)演算子の場合左が右よりも小さい、結果は左側に等しくなります;
(2)演算子が左が右よりも大きい、結果は算術の剰余と同じです。
①全体のプロセス
最主要的步骤就是求取公约数,实现最后结果的化简,这里采用了递归取模的方式进行
。
トップに戻る
②追加()
第二に、完全なコード
public class Test03_有理数 {
public static void main(String[] args) {
Rational a = new Rational(1,2);
Rational b = new Rational(1,4);
Rational c = a.add(b);
System.out.println(a + "+" + b + "=" + c );
}
static class Rational {
private long ra; // 分子
private long rb; // 分母
// 求最大公约数
private long gcb(long a,long b){
if (b==0){
return a;
}
return gcb(b,a % b);
}
public Rational(long a,long b){
ra = a;
rb = b;
long k = gcb(ra,rb);
if (k>1){
ra/=k; // ra = ra / k;
rb/=k;
}
}
// 加法
public Rational add(Rational x){
return new Rational(ra*x.rb+x.ra*rb,rb*x.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;
}
}
}