改名成 tempFormula 比較短
This commit is contained in:
@@ -27,55 +27,54 @@ class Calculator {
|
||||
return ""
|
||||
}
|
||||
|
||||
var calculatingFormula = formula
|
||||
if ["+", "-", "×", "÷"].firstIndex(of: calculatingFormula.last!) != nil {
|
||||
calculatingFormula.removeLast()
|
||||
var tempFormula = formula
|
||||
if ["+", "-", "×", "÷"].firstIndex(of: tempFormula.last!) != nil {
|
||||
tempFormula.removeLast()
|
||||
}
|
||||
|
||||
while true {
|
||||
let indexOf乘號 = calculatingFormula.firstIndex(of: "×")
|
||||
let indexOf除號 = calculatingFormula.firstIndex(of: "÷")
|
||||
let indexOf乘號 = tempFormula.firstIndex(of: "×")
|
||||
let indexOf除號 = tempFormula.firstIndex(of: "÷")
|
||||
|
||||
if indexOf乘號 == nil && indexOf除號 == nil {
|
||||
break
|
||||
}
|
||||
if indexOf乘號 != nil && (indexOf除號 == nil || indexOf乘號! < indexOf除號!) {
|
||||
let number1 = Double(calculatingFormula[indexOf乘號! - 1])!
|
||||
let number2 = Double(calculatingFormula[indexOf乘號! + 1])!
|
||||
calculatingFormula[indexOf乘號! - 1] = String(number1 * number2)
|
||||
calculatingFormula.remove(at: indexOf乘號! + 1)
|
||||
calculatingFormula.remove(at: indexOf乘號!)
|
||||
let number1 = Double(tempFormula[indexOf乘號! - 1])!
|
||||
let number2 = Double(tempFormula[indexOf乘號! + 1])!
|
||||
tempFormula[indexOf乘號! - 1] = String(number1 * number2)
|
||||
tempFormula.remove(at: indexOf乘號! + 1)
|
||||
tempFormula.remove(at: indexOf乘號!)
|
||||
}
|
||||
if indexOf除號 != nil && (indexOf乘號 == nil || indexOf除號! < indexOf乘號!) {
|
||||
let number1 = Double(calculatingFormula[indexOf除號! - 1])!
|
||||
let number2 = Double(calculatingFormula[indexOf除號! + 1])!
|
||||
calculatingFormula[indexOf除號! - 1] = String(number1 / number2)
|
||||
calculatingFormula.remove(at: indexOf除號! + 1)
|
||||
calculatingFormula.remove(at: indexOf除號!)
|
||||
let number1 = Double(tempFormula[indexOf除號! - 1])!
|
||||
let number2 = Double(tempFormula[indexOf除號! + 1])!
|
||||
tempFormula[indexOf除號! - 1] = String(number1 / number2)
|
||||
tempFormula.remove(at: indexOf除號! + 1)
|
||||
tempFormula.remove(at: indexOf除號!)
|
||||
|
||||
}
|
||||
}
|
||||
while calculatingFormula.count > 1 {
|
||||
let number1 = Double(calculatingFormula[0])!
|
||||
let number2 = Double(calculatingFormula[2])!
|
||||
if calculatingFormula[1] == "+" {
|
||||
calculatingFormula[0] = String(number1 + number2)
|
||||
while tempFormula.count > 1 {
|
||||
let number1 = Double(tempFormula[0])!
|
||||
let number2 = Double(tempFormula[2])!
|
||||
if tempFormula[1] == "+" {
|
||||
tempFormula[0] = String(number1 + number2)
|
||||
} else {
|
||||
calculatingFormula[0] = String(number1 - number2)
|
||||
tempFormula[0] = String(number1 - number2)
|
||||
}
|
||||
calculatingFormula.remove(at: 2)
|
||||
calculatingFormula.remove(at: 1)
|
||||
tempFormula.remove(at: 2)
|
||||
tempFormula.remove(at: 1)
|
||||
}
|
||||
|
||||
if Double(calculatingFormula.last!)!.truncatingRemainder(dividingBy: 1) == 0 {
|
||||
var number = calculatingFormula.popLast()!
|
||||
if Double(tempFormula.last!)!.truncatingRemainder(dividingBy: 1) == 0 {
|
||||
var number = tempFormula.popLast()!
|
||||
number.removeLast()
|
||||
number.removeLast()
|
||||
calculatingFormula.append(number)
|
||||
tempFormula.append(number)
|
||||
}
|
||||
|
||||
print(calculatingFormula)
|
||||
return calculatingFormula.last!
|
||||
return tempFormula.last!
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user