python编程:任意输入4个正整数,编程24点

如题所述

第1个回答  2013-10-23
from __future__ import division

import itertools
n = raw_input('input 4 number sep by comma: 1,2,3,4 -> ')
t = list(itertools.permutations(n.split(','),4))
x = list(itertools.product(* (['+', '-', '*', '/'],) * 3))
for r in t:
for i in x:
if eval(("(((%s%s%s)%s%s)%s%s)") % (r[0],i[0], r[1], i[1], r[2], i[2], r[3])) == 24 :
print ("(((%s%s%s)%s%s)%s%s)=24") % (r[0],i[0], r[1], i[1], r[2], i[2], r[3])

暴力法行么?追问

看不懂〜〜

追答

你一步一步运行,然后print出来变量就看懂了。
输入4个数,
t列表就是他们的全排列。
x就是4则运算,选3个的全排列。
然后用for循环把他们全部列举出来。每个列举就是 (((1 X 2 ) + 3) / 4) 类似的字符串。
然后用eval 把这个式子的值算出来,等于24的话,就打印出来。

本回答被提问者采纳
相似回答