1. 程式人生 > >[PYTHON 實作] 算100

[PYTHON 實作] 算100

true += 計算 程序 blog 順序 turn iter rom

問題:編寫一個在1,2,…,9(順序不能變)數字之間插入+或-或什麽都不插入,使得計算結果總是100的程序,並輸出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100。

代碼:

from itertools import product

NUM = ‘12345678‘  #append 9 when join

def joint(sig_str):
    temp = zip(NUM, sig_str)
    my_repr = ‘‘

    for t in temp:
        ts = t[0] + t[1]
        my_repr += ts

    my_repr += ‘9‘
    return my_repr.replace(‘ ‘, ‘‘)

def print_when_eq100(rep):
    if eval(rep) == 100:
        print rep+‘=100‘


def try_and_print():
    sig_iter = product(‘+- ‘, repeat=8)
    for sig_str in sig_iter:
        print_when_eq100(joint(sig_str))

try_and_print()

[PYTHON 實作] 算100