Atcoder bit全探索
問題
・atcoder.jp 与えられた数値に対して各桁間に+を入れていく。
125を入力とすると
125 1+25=26 12+5=17 1+2+5=8 総和:125+26+17+8 = 176 >>>176
このことから間桁間で+を入れるか入れないかの2択のある問題だとわかる。 (len(n)-1)2回数ループすればできそう。
今回の例だと(3-1)2 = 4
00:125 01:12+5 10:1+25 11:1+2+5
解法
S = input() n = len(S) - 1 ans = 0 # 各桁の間 for i in range(2 ** n): f = S[0] for j in range(n): if (i >> j) & 1: f += '+' # 桁間に+を追加 f += S[j + 1] # 次の数を追加 ans += eval(f) print(ans)