白駿5613計算機プログラム


質問する


加算、減算、乗算、除算を行う計算機プログラムを作成します.
入力 入力された行ごとに、数値と+、-、/、=が交互に与えられます。最初の行は数字です。演算子の優先度を考慮せずに入力順に計算し、=の場合はその結果に出力します。与えられた数は10^8以下の正の整数である.計算の結果は0または負の値とすることができますが、-10^8~10^8の範囲を超えません。なお、除算では小数点は切り捨てられている。したがって、100/33=99となります。

被除数が負数の場合、除算を入力として与えることはできません.
しゅつりょく 計算結果を1行目に出力します。

入力例1 1 1

サンプル出力1 2

解法


前の数値を保存し、演算する演算子を保存します.

コード#コード#

prev = result = 0
op = ''
while True:
    now = input()
    if now.isdigit():           # 입력이 숫자이면
        if op == '+':           # 이전 연산자가 +이면 더하고 갱신
            prev += int(now)
        elif op == '-':         # 이전 연산자가 -이면 빼고 갱신
            prev -= int(now)
        elif op == '*':         # 이전 연산자가 *이면 곱하고 갱신
            prev *= int(now)
        elif op == '/':         # 이전 연산자가 /이면 나누고 갱신
            prev //= int(now)
        else:                   # 이전 연산자가 없다면 (처음 받는 숫자 입력이면) 그 입력 숫자로 갱신
            prev = int(now)
    else:                       # 입력이 연산자이면
        if now == '=':          # 입력이 연산자 중 =이면 정답은 이전 값이고 탈출
            result = prev
            break
        op = now                # 연산자 갱신
print(result)
白駿5613計算機プログラム