Skip to content

Instantly share code, notes, and snippets.

@shirohana
Last active July 25, 2016 09:12
Show Gist options
  • Save shirohana/33e4f3f587e6347c8813c2e4429f1a35 to your computer and use it in GitHub Desktop.
Save shirohana/33e4f3f587e6347c8813c2e4429f1a35 to your computer and use it in GitHub Desktop.
Simple calculator homework

簡易計算機練習

試製一符合題目要求之簡易計算機

  • 輸入符號為 + - * / ( )
  • 輸入數字皆為 實數
  • 製作包含括弧,考慮四則運算邏輯的計算機
  • 輸入皆為合法算式,無須考慮算式錯誤
  • 運算元之間皆以空格 作為切割
  • 運算元可為負數 (如: 1 * -3)
  • 運算元可為零 (如: 0 * -0)
  • 除數永不為零
  • 輸出近似小數點後兩位數四捨五入

額外項目

  • 去除小數點後多餘的零 (如: 1 / 5 = 0.2 10 / 2 = 5)
  • 程式重複執行,直到輸入結束 ^D
  • 容許錯誤輸入,並輸出錯誤訊息 (如輸入: 1 ++ 2 1 + 2 / 0 時,輸出: Invalid Input.)
  • 算式不再以空格 切割運算元 (如: 1+3*-2)
  • 額外輸入符號 % (求餘) ^ (次方) ! (階層)
    • 運算元優先度為 () ! ^ */% +-,算式依左至右
    • a % b a 與 b 皆為實數 (如: 1.5%0.7 = 0.1)
    • a ^ b 底數 a 為實數,指數 b 則為含零正整數
    • a! a 為不為零正整數

範例輸入:

1 + 4 / 2 * 3

7

1 + 4 / ( 2 * 3 )

1.67

1+4/(2*-3)

0.33

12 / 7 % 5

1.71

12 / (7 % 5)

6

12 % (7 / 5) ^ 2

0.24

12 % 7 / 5 ^ 2

0.2

6 / 3!

1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment