我是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)
答案 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))