`
sdmzhu3
  • 浏览: 30434 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个智力题的求解程序123456789这个9个数中间加2个减号1个加号等于100

阅读更多
原题是这样的
123456789这个9个数中间加2个减号1个加号等于100
想了觉得很难,很懒就写程序让计算机求解吧
def run_main():
    print 'hi'
    a='123456789'
    x=['--+','-+-','+--']
    s=0
    import time
    t1=time.time()
    for i in x:
        for j in range(0,9):
            for k in range(j+1,9):
                for n in range(k+1,9):
                    t=a[0:j] + i[0] + a[j:k]+i[1]+a[k:n]+i[2]+a[n:]                    
                    s+=1

                    if eval(t)==100:
                        print s,t
                        print "ok",t
                        print time.time()-t1
        
    t2=time.time()
    print t2-t1,s
    


if __name__ == "__main__":    
    run_main()

运行结果
hi
70 123-45-67+89
ok 123-45-67+89
0.00210404396057
0.00796008110046 252

答案就是 123-45-67+89=100
只要2毫秒就找到答案了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics