欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python每日一练

程序员文章站 2022-03-15 22:25:17
...
题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列

for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            #print(i,j,k)                                     
            if i != j and i != k and j != k:
                print(i,j,k)

步骤解析:在第三个for循环内可以先输出一下,运行:

for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            print(i,j,k) 
            
是如下结果:
1 1 1
1 1 2
1 1 3
1 1 4
1 2 1
1 2 2
1 2 3
1 2 3
1 2 4
1 2 4
...
4 4 2
4 4 3
4 4 4

题目要求不能重复,比如不能有:111、444这种,所以要判断这三个数是不是完全相同,并且是在循环内判断,然后再次输出

      if i != j and i != k and j != k:
          print(i,j,k)
          

将结果保存到列表中,并输出个数,需要定义一个list = [],使用len统计个数

for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            print(i,j,k)
            if i != j and i != k and j != k:
                #print(i,j,k)
                a= 100 *i + 10 * j + k
                list.append(a)
print("答案列表:",list)
print("列表中元素个数:" ,len(list))

原题目及答案来自于鱼C:
https://fishc.com.cn/forum.php?mod=viewthread&tid=84666&highlight=%C3%BF%C8%D5%D2%BB%CC%E2