2013-10-21 43 views
1

我寫了一個程序,它添加,乘,減,分和簡化分數。當我嘗試簡化2/4時,它給了我1/1。下面是我的程序的簡化部分:我如何修復我的程序,簡化了分數

def simplify(numer1,denom1) 
    gcd = numer1.gcd(denom1) 
    final_numer = numer1/gcd 
    final_denom = numer1/gcd 

    return {"Numerator" => final_numer, "Denominator" => final_denom} 
end 

puts simplify(2,4) # => 1/1 

回答

2

我認爲你有一個錯字問題就在這裏:

def simplify(numer1,denom1) 
    gcd = numer1.gcd(denom1) 
    final_numer = numer1/gcd 
    final_denom = numer1/gcd 
       #^^^^^^ shouldn't it be `denom1/gcd` ? 
    return {"Numerator" => final_numer, "Denominator" => final_denom} 
end 

事實上,在Rational對象可以很容易地做到這一點:

def simplify(numer1, denom1) 
    return Rational(numer1, denom1) 
end 

文檔:http://www.ruby-doc.org/core-2.0.0/Rational.html