问题描述:找出所有形如abc*de(三位数乘两位数)的算式,使得在完整的竖式中,所有的数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后有一个空行。最后输出解得总数。具体格式详见样例输出(为了便于观察,竖式中的空格改用小数点表示,但是所写程序中应该输出空格,而非小数点)
代码如下:
m=set(str(input())) #利用集合中无重复元素的特性
n=set()
for i in range(100,1000):
for j in range(10,100):
q=i*j
x=i*(j%10)
y=i*(j//10)
n.update(str(i)+str(j)+str(x)+str(y)+str(q))
if m==n:
print('%5d\nX%4d\n-----\n%5d\n%4d\n-----\n%5d\n\n'%(i,j,x,y,q))
n.clear()
运行结果: