每日一练 no.1

版权声明:本文为博主原创文章,如若转载请注明出处 https://blog.csdn.net/tonydz0523/article/details/83412182

问题:

四个数字1、2、 3、 4 ,能组成多少个互不相同且无重复的三位数?

解答

方法一:
先不考虑重复将个位、十位、百位填入数值,得到后判断各个数位上是否有重复,弃去重复项
代码实现:

total = []
for i in range(1, 5):
    for j in range(1, 5):
        for k in range(1, 5):
            if all([i!=j, j!=k, i!=k]):
                total.append(i*100+j*10+k)
print(len(total))
print(total)

方法二:通过取数的方式

代码实现:

total = []
for i in range(4):
    num1 = [1, 2, 3, 4]
    num1.pop(i)
    for j in range(3):
        num2 = num1.copy()
        x = num2.pop(j)
        for k in range(2):
            num3 = num2.copy()
            y = num3.pop(k)
            z = num3[0]
            total.append(x*100+y*10+z)
            
print(len(total))
print(total)

猜你喜欢

转载自blog.csdn.net/tonydz0523/article/details/83412182