1. 程式人生 > >新增運算子使其和等於某一個數

新增運算子使其和等於某一個數

比如小米的筆試題,給定1~n,在其中插入加減或空格,空格代表連線兩個相鄰數字,求表示式和為m的個數

n,m = map(int, raw_input().split())
 
count = [0]
 
def dfs(i,s):
    if i == n:
        if m == eval(s):
            count[0] += 1
    else:
        dfs(i+1,s+'+'+str(i+1))
        dfs(i+1,s+'-'+str(i+1))
        dfs(i+1,s+str(i+1))
 
dfs(1,'1')
print(count[0])

當然也可以直接指定一個求和字串,將上述程式碼中的str()換成字串的小標表達就行