[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()

 

posted on 2017-09-05 16:17  lisalala  阅读(333)  评论(0编辑  收藏  举报

导航