592. 분수 덧셈과 뺄셈
난이도:중
주제: 수학, 문자열, 시뮬레이션
분수의 덧셈과 뺄셈을 나타내는 문자열 표현식이 주어지면, 계산 결과를 문자열 형식으로 반환합니다.
최종 결과는 기약분수여야 합니다. 최종 결과가 정수인 경우 분모가 1인 분수 형식으로 변경하세요. 따라서 이 경우에는 2를 2/1로 변환해야 합니다.
예 1:
-
입력: 표현식 = "-1/2+1/2"
-
출력: "0/1"
예 2:
-
입력: 표현식 = "-1/2+1/2+1/3"
-
출력: "1/3"
예 3:
-
입력: 표현식 = "1/3-1/2"
-
출력: "-1/6"
제약조건:
- 입력 문자열에는 '0'~'9', '/', '+', '-'만 포함됩니다. 출력도 마찬가지입니다.
- 각 분수(입력 및 출력)의 형식은 ±분자/분모입니다. 첫 번째 입력 분수 또는 출력이 양수이면 '+'가 생략됩니다.
- 입력에는 유효한 기약 분수만 포함됩니다. 여기서 각 분수의 분자 및 분모는 항상 [1, 10] 범위에 있습니다. 분모가 1이면 이 분수가 실제로 위에 정의된 분수 형식의 정수라는 의미입니다.
- 주어진 분수의 개수는 [1, 10] 범위에 있습니다.
-
최종 결과의 분자와 분모는 32비트 정수
범위 내에서 유효함을 보장합니다.
해결책:
입력 문자열을 주의 깊게 분석하고 분수에 대한 산술 연산을 수행해야 합니다. 단계는 다음과 같습니다.
-
입력 표현식 구문 분석: 표현식 문자열에서 개별 분수를 추출합니다.
-
결과 계산: 분수를 단계별로 더하거나 뺍니다.
-
결과 단순화: 최종 분수를 기약 형식으로 변환합니다.
이 솔루션을 PHP로 구현해 보겠습니다: 592. 분수의 덧셈과 뺄셈
<?php
// Example usage
echo fractionAddition("-1/2+1/2"); // Output: "0/1"
echo "\n";
echo fractionAddition("-1/2+1/2+1/3"); // Output: "1/3"
echo "\n";
echo fractionAddition("1/3-1/2"); // Output: "-1/6"
?>
로그인 후 복사
설명:
-
gcd 함수: 두 숫자의 최대 공약수를 계산하여 분수를 단순화하는 데 도움이 됩니다.
-
addFractions 함수: 분수 두 개를 더합니다. 공통 분모를 계산하고 그에 따라 분자를 조정하고 더한 다음 결과 분수를 단순화합니다.
-
fractionAddition 함수: 입력 표현식을 구문 분석하고 정규식을 사용하여 모든 분수를 추출한 후 addFractions 함수를 사용하여 반복적으로 합산하는 주요 함수입니다.
테스트 케이스:
-
FractionAddition("-1/2+1/2")은 "0/1"을 반환합니다.
-
FractionAddition("-1/2+1/2+1/3")은 "1/3"을 반환합니다.
-
FractionAddition("1/3-1/2")은 "-1/6"을 반환합니다.
이 솔루션은 필요한 모든 작업을 처리하고 주어진 각 표현식에 대해 올바른 출력을 반환합니다.
연락처 링크
이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!
이렇게 더 유용한 콘텐츠를 원하시면 저를 팔로우해주세요.
위 내용은 . 분수 덧셈과 뺄셈의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!