白駿5613計算機プログラム
4570 ワード
質問する
加算、減算、乗算、除算を行う計算機プログラムを作成します.
入力
入力された行ごとに、数値と+、-、/、=が交互に与えられます.最初の行は数字です.演算子の優先度を考慮せずに入力順に計算し、=の場合はその結果に出力します.与えられた数は108以下の正の整数である.計算の結果は0または負の値とすることができるが、-108~108の範囲を超えない.なお、除算では小数点は切り捨てられている.したがって、100/33=99となります.
被除数が負数の場合、除算を入力として与えることはできません.
しゅつりょく
計算結果を1行目に出力します.
入力例1
1
1
2
入力例2
10
21
5
-55
入力例3
100
/
3
3
99
解法
最初に入力した数字は重要です.
重複する場合は、数値を変数に、演算子を変数に、現在の等号が入力されているかどうかを決定します.
現在の入力が数値の場合は、以前に受信した演算子が分岐されます.4つの演算タイプに対して演算を実行します.この結果は、以下の入力で以前に受信した数値として使用できます.
以前に受け取った演算子がない場合、これは最初に入力された数値になります.
現在の入力が演算子であり、演算子が等号演算子である場合、正解は以前に受信した数値または計算結果の値であるため、出力され、繰り返しが終了します.
現在の入力が等号でない場合は、演算子を保存し、次に数値を入力するときにこの値を使用して演算します.
コード#コード#
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計算機プログラム
Reference
この問題について(白駿5613計算機プログラム), 我々は、より多くの情報をここで見つけました
https://velog.io/@mynote/백준-5613-계산기-프로그램-7qsrnqgw
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
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)
Reference
この問題について(白駿5613計算機プログラム), 我々は、より多くの情報をここで見つけました https://velog.io/@mynote/백준-5613-계산기-프로그램-7qsrnqgwテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol