如何生成一个12位数字,但所有的数字加起来必须等于55?

2024-09-27 04:23:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在生成一个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

Tags: 方法falsetruenumberstringreturnifdef
1条回答
网友
1楼 · 发布于 2024-09-27 04:23:54

递归打印:

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)

相关问题 更多 >

    热门问题