。分數加法和減法

王林
發布: 2024-08-24 06:40:41
原創
155 人瀏覽過

. Fraction Addition and Subtraction

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位int範圍內。

解決方案:

我們需要仔細解析輸入字串並對分數進行算術運算。步驟如下:

  1. 解析輸入表達式:從表達式字串中提取各個分數。
  2. 計算結果:逐步加法或減去分數。
  3. 簡化結果:將最終分數轉換為其不可約形式。
讓我們用 PHP 實作這個解決方案:

592。分數加法和減法
雷雷

解釋:

  • 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 上給

存儲庫一顆星,或者在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!

如果您想要更多類似的有用內容,請隨時關注我:

  • 領英
  • GitHub

以上是。分數加法和減法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!