我正在生成一个12位数字,但所有加在一起的数字必须等于55。 在python中执行此操作的最佳方法是什么?我想不出任何简单的方法。 谢谢。
这是我到目前为止所尝试的内容(非常耗时):
def isValid(number);
split = string.split(number)
if split[0] + split[1] + split[2] + split[3] + split[4] + split[5] + split[6] + split[7] + split[8] + split[9] + split[10] + split[11] == 55:
return True
else:
return False
number = random.randrange(100000000000, 999999999999)
if isValid(number):
print number
else:
//Keep generating numbers until you get a valid one
答案 0 :(得分:1)
递归打印:
def gen_num(trailing, depth, left):
if depth < 11:
for i in range(max(0,min(10, left))):
gen_num(trailing*10+i, depth+1, left-i)
elif depth == 11:
if left < 10:
print trailing*10+left
for i in range(1,10):
gen_num(i, 1, 55-i)