[PYTHON 实作] 算100
问题:编写一个在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()