2021/11/17
C - Train Ticket をpythonで解く
問題
問題のリンク↓
https://atcoder.jp/contests/abc079/tasks/abc079_c
文字列ABCDが与えられるので、間に + か - を入れて合計7になるような式を出力せよというもの。
解き方
C - たくさんの数式をpythonで解く と同じようにbit全探索を使っていけば良さそう。
まず数式を作る。
S = input()
for i in range(2 ** 3):
f = S[0]
for j in range(3):
if i >> j &1:
f += '+'
else:
f += '-'
f += S[j +1]
print(f)
各文字列の間に+か-を入れるパターンを全て洗い出す。
input
3242
output
3-2-4-2
3+2-4-2
3-2+4-2
3+2+4-2
3-2-4+2
3+2-4+2
3-2+4+2
3+2+4+2
想定通り。
evelで文字列を式年て計算出来るらしい。
計算した結果、7である場合に数式を出力すれば良い。
S = input()
for i in range(2 ** 3):
f = S[0]
for j in range(3):
if i >> j &1:
f += '+'
else:
f += '-'
f += S[j +1]
if eval(f) == 7:
f += '=7'
print(f)
exit(0)