创建不同的数字乘法

时间:2019-07-03 17:39:46

标签: python

我是Python的新手。

我正在尝试创建类似这样的东西:

    A B C

x     D E
__________

F G H I J

因此,将三位数乘以两位数得到一个五位数。我可以创建这个。但是,我需要这样做,以便在产品和答案中使用0至9的所有数字。

我如何生成这样的东西?

谢谢。

代码:

from random import randint

x = randint(102, 987)
y = randint(10, 98)

print(x, "*", y, "=", x*y)

1 个答案:

答案 0 :(得分:1)

利用这样的事实,一旦您选择了A-E,F-J就会全部被迫:

import itertools

# Find all the ways to assign A-E different digits
for a,b,c,d,e in itertools.product([0,1,2,3,4,5,6,7,8,9], repeat=5):
    used = set([a,b,c,d,e])
    prod = temp = ((a*10+b)*10+c) * (d*10+e)

    # Now add all of the digits in prod to used
    for i in range(5):
        n = temp % 10
        used.add(n)
        temp = int(temp / 10)

    # If all 10 digits used, we have a winner
    if len(used)==10:
        print("%d%d%d x %d%d = %05d" % (a,b,c,d,e,prod))