dポイントプレゼントキャンペーン実施中!

4つの自然数a1,b1,a2,b2を入力し2つの分数a1/b1とb1/b2の四則演算を行い、その式と値を出力するプログラムを作成せよ。ただし値は約分し既約分数で出力せよ。という問題で四則演算は作れたのですが既約分数にすることができません。ヒントでは最大公約数g =gcd(abs(a),abs(b))を求めると書いてあるのですがよくわかりません。誰かできる方教えて欲しいです。お願いします。

A 回答 (1件)

Rubyでいいんですね?



> ヒントでは最大公約数g =gcd(abs(a),abs(b))を求めると書いてある

必要ないです。
RubyにはRationalと言うクラスがあるんで、フツーに有理数が計算出来ます。

例えば以下のようにプログラムを書きます。

##### ここから

#! /usr/bin/env ruby

def main a1, b1, a2, b2
  num1 = Rational(a1, b1)
  num2 = Rational(a2, b2)
  return num1 + num2, num1 - num2, num1 * num2, num1/num2
end

if __FILE__ == $0
  puts main(ARGV[0], ARGV[1], ARGV[2], ARGV[3])
end

##### ここまで

適当な名前を付けてセーブして(例えばmy_program.rbとか)、Windows(多分?)の端末(コマンドプロンプトとかDOS窓と言われるブツ)を利用して、コマンドライン引数を4つ与えて実行します。

コマンドラインでの打ち込み例1:

> ruby my_program.rb 1 2 3 4

コマンドラインでの打ち込み例2:

> ruby tsuyo03_1.rb 9 8 7 6

あとは勝手に結果を返してくれます。

以上です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!