본문으로 바로가기

C034:先生の宿題

category TIL/Algorithm 2024. 4. 9. 00:17

あなたは小学校一年生の先生です。今週の授業で、足し算と引き算を教えます。あなたは、足し算と引き算を用いた宿題を作る必要があり、そのためのプログラムを書くことにしました。

以下の手順で問題をランダム生成するプログラムはもうできているのですが、その答えを求めるプログラムはまだできていません。答えを求めるプログラムを書いてください。

[問題生成の手順]

1. 正しい式 a + b = c, あるいは a - b = c (a, b, c, は整数) を生成する
2. a, b, c のうちいずれか 1 つを空欄にする

この空欄に入れるべき整数が「答え」となります。

ここに、足し算、引き算の問題について例を一つずつ示します。



図の問題において、答えは、それぞれ 4, 3 となります。これらはそれぞれ入力例 1, 2 に対応しています。

評価ポイント10回のテストケースで、正答率、実行速度、メモリ消費量をはかり得点が決まります。
より早い回答時間で提出したほうが得点が高くなります。
  1. 複数のテストケースで正しい出力がされるか評価(+50点)
  2. 解答までの速さ評価(+50点)
入力される値入力は以下のフォーマットで与えられます。

a op b = c

・文字 a, op, b, "=" (半角等号), c がこの順に半角スペース区切りで与えられ、これらの並びが 1 つの問題を表します。
 ・op には足し算あるいは引き算を表す記号が入ります。
 ・a, b, c は "x" (英字小文字), "0", "1",..., "9" のうちいずれかで、"x" は空欄を表します。

入力値最終行の末尾に改行が1つ入ります。


それぞれの値は文字列で標準入力から渡されます。標準入力からの値取得方法はこちらをご確認ください
期待する出力入力が表す問題の答え (空欄に入れるべき整数) を出力してください。
出力の末尾に改行を 1 つ入れ、余計な文字、空行を含んではいけません。
条件すべてのテストケースで以下の条件を満たします。

・a, b, c は "x", "0", "1", ..., "9" のうちいずれか
・op は "+", "-" のうちいずれか
・a, b, c のうち必ずただ 1 つだけ "x" となる
・0 ≦ (問題の答え) ≦ 9
入力例1
1 + 3 = x
出力例1
4
入力例2
6 - x = 3
出力例2
3
入力例3
x - 1 = 5
出力例3
6

0

空欄

足し算

引き算

手順

# 1 + 3 = x
sentence=input()
# print(sentence)
sentence_without_spaces = sentence.replace(" ", "")
# print(sentence_without_spaces)
if sentence_without_spaces[0]=="x":
    if sentence_without_spaces[1]=="+":
        print(int(sentence_without_spaces[-1])-int(sentence_without_spaces[2]))
    elif sentence_without_spaces[1]=="-":
        print(int(sentence_without_spaces[-1])+int(sentence_without_spaces[2]))
elif sentence_without_spaces[2]=="x":
    if sentence_without_spaces[1]=="+":
        print(-int(sentence_without_spaces[0])+int(sentence_without_spaces[4]))
    elif sentence_without_spaces[1]=="-":
        print(-(-int(sentence_without_spaces[0])+int(sentence_without_spaces[4])))
elif sentence_without_spaces[4]=="x":
    if sentence_without_spaces[1]=="+":
        print(int(sentence_without_spaces[0])+int(sentence_without_spaces[2]))
    elif sentence_without_spaces[1]=="-":
        print(int(sentence_without_spaces[0])-int(sentence_without_spaces[2]))

'TIL > Algorithm' 카테고리의 다른 글

C116:あたり棒の検査  (0) 2024.04.22
C148:戦闘シミュレーション  (0) 2024.04.20
C135:商品の割引  (0) 2024.04.07
C122:【2022年Xmas問題】プレゼントのセール  (0) 2024.04.07
C030:白にするか黒にするか  (0) 2024.04.05