2016-08-19 3 views
-4

난 그냥이 퀴즈를 완료하려고하지만 난 "로마 화"방법 "AMT"는 무엇을하고 있는지 이해할 수 없다 :로마 숫자 연습에서 "amt"의 의미는 무엇입니까?

ROMAN_NUMS = { 
    "M" => 1000, 
    "CM" => 900, "D" => 500, "CD" => 400, "C" => 100, 
    "XC" => 90, "L" => 50, "XL" => 40, "X" => 10, 
    "IX" => 9, "V" => 5, "IV" => 4, "I" => 1 
} 

def romanize(num) 
    ROMAN_NUMS.map do |ltr, val| 
    amt, num = num.divmod(val) 
    ltr * amt 
    end.join 
end 
+0

[divmod] (http://ruby-doc.org/core-1.9.3/Numeric.html#method-i-divmod) – zarak

+3

의심스러운 경우 "Ruby divmod"와 같은 메소드 이름을 검색하고 깨달음을 얻으십시오. . – tadman

+0

http://ruby-doc.org/core-1.9.3/Numeric.html#method-i-divmod – HolyMoly

답변

1

divmod이 몫과로 구성된 두 요소의 배열을 반환 모듈러스.

따라서 기본적으로 x.divmod(y)[x/y, x % y]을 반환합니다 (보다 정확한 설명은 문서를 참조하십시오).

라인

amt, num = num.divmod(val) 

는 두 소자 어레이를 받아 두 변수 디 구조화 할당한다. 그 다음에 (이는 단지 amount이라고해야하는 잘못 명명 된 변수 임)은 반환되는 배열의 첫 번째 값을 포함하고 두 번째 값은 num입니다.

+0

당신은 또한 두 줄로 쓸 수 있습니다 :'amt = num/val'과'num = num % val' – Stefan

+0

"divmod"를보기위한보다 그래픽적이고 노골적인 방법입니다. 정말 감사합니다. 너 친절 하구나!! – ELECON88

관련 문제