2013-10-21 1 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