dragov 发表于 2021-2-9 09:08:45

2021 年 有 几 种 组 合 ?

2021年的这4个数字能生成多少个互不相同的、且无重复数字的3位数。

sum = 0
for i in ( 2 , 0 , 2 , 1 ) :
    for j in ( 2 , 0 , 2 , 1 ) :
      for k in ( 2 , 0 , 2 , 1 ) :
            ifi != jandj != k andi != k :
                sum += 1
                print ( "%d%d%d"% ( i , j , k ) , end = "   ")
print ( )
print ( "2021年,一共有{0}种组合!". format ( sum ) )

输出的结果,有重复的?如 两个201、021......



逃兵 发表于 2021-2-9 09:28:38

你的代码只能判断百位,十位,个位各不相同,无法判断有没有数字相同的
修改代码
lst=[]
for i in ( 2 , 0 , 2 , 1 ) :
    for j in ( 2 , 0 , 2 , 1 ) :
      for k in ( 2 , 0 , 2 , 1 ) :
            ifi != jandj != k andi != k :
                lst.append(i*100+j*10+k)
lst = list(set(lst))
print(*lst)
print ( "2021年,一共有%d种组合!"%len(lst))

dragov 发表于 2021-2-9 09:38:55

逃兵 发表于 2021-2-9 09:28
你的代码只能判断百位,十位,个位各不相同,无法判断有没有数字相同的
修改代码

{:7_130:}好似 021 和 012 显示不出来啊!

逃兵 发表于 2021-2-9 09:49:30

本帖最后由 逃兵 于 2021-2-9 09:59 编辑

dragov 发表于 2021-2-9 09:38
好似 021 和 012 显示不出来啊!

转成字符串吧
lst=[]
for i in ( 2 , 0 , 2 , 1 ) :
    for j in ( 2 , 0 , 2 , 1 ) :
      for k in ( 2 , 0 , 2 , 1 ) :
            ifi != jandj != k andi != k :
                lst.append("%d%d%d"% ( i , j , k ))
lst = list(set(lst))
print(*lst)
print ( "2021年,一共有%d种组合!"%len(lst))
页: [1]
查看完整版本: 2021 年 有 几 种 组 合 ?