2009-03-18 4 views
0

합리적인 숫자 계산기를 만들고 싶지만 일부 문자를 무시하는 방법을 모르겠습니다. 예를 들어, 프로그램에서 표현식 "2/9 + 9/3"을 계산해야하고 대답이 단순화 된 형식이어야한다면 입력을 가져 오는 동안 위의 표현에서 '/'를 무시하는 방법은 무엇입니까?Rational number calculator

+0

어떤 프로그래밍 언어를 사용합니까? – unwind

+0

여기에서 문제가 보이지 않습니다 ... 분수로 작업하는 경우 나누기 연산자 /는 분수 표시기가됩니다. 즉, 모든 나누기가 실제로 분수로 변환됩니다. –

+0

Python 2.6에 포함 된 소수 모듈을 살펴보십시오. –

답변

4

당신은 합리적인 숫자를 알고있는 구문/파서를 정의해야한다고 생각합니다. 코드가 구현되도록

add(rational(2, 9) 
     rational(9, 3)) 

이 그럼 당신은 유리수로 계산할 때 사용되는 다양한 트릭에 대해 알고있는 코드를 작성하는 것입니다 : 샘플 입력의 경우이 같은 파스 트리 잡고 뭔가 끝내고 싶습니다 예를 들어 add 연산은 입력 인수가 greatest common divisor인지 확인하고 추가 할 수 있도록 숫자를 변환 할 수 있습니다.

이 경우 인수가 rational(2, 9)rational(27, 9)으로 다시 작성된 다음 추가를 수행하여 rational(29, 9)으로 끝납니다.

단순화를 수행하는 별도의 기능을 사용할 수 있으므로 다시 3+rational(2, 9)으로 간단하게 줄일 수 있습니다.