トップ・ページの表示 注意書きの表示 掲示板に書き込む前に必ず この ”注意書き”を お読み下さい.

"伊邪那"

   
   

ページの表示順:{ 新しい順/ 古い順}.
初期・ページの表示・位置:{ 先頭ページ/ 末尾ページ}.
1ページ内のスレッド表示数:







<Number>: [00000A5B]  <Date>: 2021/07/17 06:48:01
<Title>: Javaデモ/約分(ユークリッド互除法)002
<Name>: amanojaku@管理人



public class Main {
  public static void main(String args[]) {
    Fraction fraction = new Fraction(1254, 9861);
    System.out.println(fraction);
    System.out.println("cnt: "+fraction.cnt);
  }
}
 
class Fraction { // 分数
  int numerator; // 分子
  int denominator; // 分母
  int cnt;
 
  public Fraction(int numerator, int denominator) {
    Set(numerator, denominator);
  }
 
  public void Set(int numerator, int denominator) {
    this.numerator = numerator;
    this.denominator = denominator;
    Reduce();
  }
 
  public void Reduce() { // 約分
    if (numerator == 0) {
      denominator = (denominator != 0) ? 1 : 0;
    } else if (denominator == 0) {
      numerator = (int) Math.signum(numerator);
    } else {
      int n, d, sign, a, b, r;
      n = Math.abs(numerator);
      d = Math.abs(denominator);
      sign = (int) (Math.signum(numerator) * Math.signum(denominator));
      a = Math.max(n, d);
      b = Math.min(n, d);
      cnt = 0;
      while ((r = a % b) != 0) {
        a = b;
        b = r;
        cnt++;
      }
      numerator = sign * n / b;
      denominator = d / b;
    }
  }
 
  @Override public String toString() {
    String res;
    res = null;
    if (numerator == 0 & denominator == 0) {
      res = "Uncalculated"; // 演算不能
    } else if (numerator != 0 & denominator == 0) {
      res = (numerator>0) ? "Infinity" : "-Infinity"; // ±無限大
    } else if(Math.abs(numerator)<=1 & Math.abs(denominator)<=1) {
      res = String.valueOf(numerator * denominator);
    }else{
      res = String.format(" %d / %d ", numerator, denominator);
    }
    return res;
  }
}

Block( Address 00000A5D Identity 00000A5B )






ページの表示順:{ 新しい順/ 古い順}.
初期・ページの表示・位置:{ 先頭ページ/ 末尾ページ}.
1ページ内のスレッド表示数:

   
   

管理者用 Password:

  




SMT Version 8.022(+A) Release M6.
Author : amanojaku.


- Rental Orbit Space -