/
Time Limit: 2 sec / Memory Limit: 1024 MiB
問題文
1と+と-のみからなる式 S が 1 行で与えられるので、計算結果を出力してください。
例えば式 S が 1+1+1-1 であったとき、計算結果は 2 です。
具体的な式 S の形式は以下の通りです。
- 式 S の 1 文字目は必ず
1です。 - その後、「
+または-」と1が交互に続きます。 - S の最後の文字も必ず
1です。
式と演算子はスペースで区切られていないことに注意してください。
ページ末尾に問題のヒントがあります。詰まったら見てみましょう。
サンプルプログラム
S = input() # ここにプログラムを追記
制約
- 1 \le |S| \le 100 (|S| は文字列の長さ)
- S は
1から始まり、その後「+または-」と1が交互に続き、1で終わる
入力
入力は次の形式で標準入力から与えられます。
S
出力
Sの計算結果を出力してください。
ジャッジでは以下の入力例以外のケースに関してもテストされることに注意。
入力例1
1+1+1-1
出力例1
2
問題文中で説明した入出力です。
入力例2
1-1-1-1-1-1
出力例2
-4
計算結果は負の値になることもあります。
入力例3
1
出力例3
1
入力は 1 だけで終わることもあります。
入力例4
1-1-1+1+1+1+1-1+1-1+1-1+1
出力例4
3
ヒント
次のプログラムは 9 文字の式 S にいくつ 1 が含まれているかを出力するプログラムです。
今回の問題を解く際の参考にしてください。
クリックでヒントプログラムを見る
S = input()
count = 0
# 9 文字の式に限定していることに注意
for i in range(9):
if S[i] == "1":
count += 1
print(count)
ヒント入力
1-1-1+1+1
ヒント出力
5
テスト入出力
書いたプログラムがACにならず、原因がどうしてもわからないときだけ見てください。
クリックでテスト入出力を見る
テスト入力1
1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1+1
テスト出力1
-25
テスト入力2
1+1+1+1+1+1+1+1+1+1+1+1+1
テスト出力2
13
テスト入力3
1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1
テスト出力3
-33
テスト入力4
1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1+1-1-1+1+1-1-1+1+1+1-1-1-1+1
テスト出力4
2
解答例
必ず自分で問題に挑戦してみてから見てください。
クリックで解答例を見る
S = input()
# 計算結果を保持する変数
answer = 1
for i in range(len(S)):
if S[i] == "+":
answer += 1
if S[i] == "-":
answer -= 1
print(answer)
in の後ろに文字列を指定することで、文字に対して繰り返し処理を行うこともできます。
S = input()
# 計算結果を保持する変数
answer = 1
for c in S:
if c == "+":
answer += 1
if c == "-":
answer -= 1
print(answer)