分数の計算

分数の加減算をして、結果を分数で表示します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

最大公約数(GCM)

  1. 分数計算を行うには、まず最大公約数と最小公倍数を求めます。
    最大公約数とは、二個の整数を割り切ることのできる最大の数で、分数を約分するときに使う数です。
    例えば 24 と 32 の最大公約数は 8 になります。
    従って 24 / 32 を約分すると 3 / 4 になります。
          24 / 8 = 3        //24は8で割り切れる
          32 / 8 = 4        //32も8で割り切れる
          24 / 32 = 3 / 4   //従って約分すると3/4
        
    また 42 と 30 の最大公約数は 6 になります。
    従って 42 / 30 を約分すると 7 / 5 になります。
          42 / 6 = 7        //42は6で割り切れる
          30 / 6 = 5        //30も6で割り切れる
          42 / 30 = 7 / 5   //従って約分すると7/5
        
  2. 最大公約数はユークリッドの互除法を使った次の手順で計算できます。
    1. data1 と data2 が等しいとき data1 が最大公約数です。
    2. data1 が data2 より大きいとき data1-=data2 を計算して 1. に戻ります。
    3. data2 が data1 より大きいとき data2-=data1 を計算して 1. に戻ります。

最小公倍数(LCM)

  1. 最小公倍数は data1*data2/最大公約数 で求まります。
    ただし、data1, data2 は GCM を計算する前の最初の値です。
  2. 最小公倍数は、分数の加減算でお馴染みの通分に使う数です。
    例えば 24 と 32 の最大公約数は 8 なので、最小公倍数は、次のようになります。
          24 * 32 / 8 = 96  //24と32の最小公倍数は96
          96 / 24 = 4       //96は24で割り切れる
          96 / 32 = 3       //96は32でも割り切れる
        
    また 42 と 30 の最大公約数は 6 なので、最小公倍数は、次のようになります。
          42 * 30 / 6 = 210 //42と30の最小公倍数は210
          210 / 42 = 5      //210は42で割り切れる
          210 / 30 = 7      //210は30でも割り切れる
        

分数計算

  1. ニ個の分数の分母と分子を bubbo1, bubbo2, bunsi1, bunsi2 とします。
    例えば「3/24 + 8/32」のときは、次のようになります。
    3/24 + 8/32
    bunsi1 = 3
    bubbo1 = 24
    bunsi2 = 8
    bubbo2 = 32
  2. この分数を最小公倍数で通分すると次のようになります。
    3 / 24 + 8 / 32
    = (3*4) / (24*4) + (8*3) / (32*3)
    = 12 / 96 + 24 / 96
  3. 二個の分数を加えて約分すると答えが求まります。
    = (12 + 24) / 96
    = 36 / 96
    = 3 / 8
  4. bubbo1, bubbo2, bunsi1, bunsi2 に適当な値を設定して、分数計算をするプログラムを作成して下さい。
    int bunsi1 = 3;
    int bubbo1 = 24;
    int bunsi2 = 8;
    int bubbo2 = 32;

前田稔(Maeda Minoru)の超初心者のプログラム入門