题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
list1 =[]
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if( i != k ) and (i != j) and (j != k):
num1 = 100 * i + 10 * j + k
list1.append(num1)
print (list1)
print('共有',len(list1),'个')
# ---------------------------- 如果出现连等的情况,则会有首位相同的代码计入-------------------------------
# 差别在于 if( i != k ) and (i != j) and (j != k): if i!= j != k :
list1 =[]
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i!= j != k :
num1 = 100 * i + 10 * j + k
list1.append(num1)
print (list1)
print('共有',len(list1),'个')
两种输出的差别
[123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432]
共有 24 个
[121, 123, 124, 131, 132, 134, 141, 142, 143, 212, 213, 214, 231, 232, 234, 241, 242, 243, 312, 313, 314, 321, 323, 324, 341, 342, 343, 412, 413, 414, 421, 423, 424, 431, 432, 434]
共有 36 个
明显,第一种方法输出的是正解,但是第二种出现错误的原因是什么呢?
相似问题