Day11:Python基础编程(判断)能力训练50天——组合三位数

day11

组合三位数

有 1、2、3、4 个数字,能组成多少个互不相同且无重复数
字的三位数?都是多少? 1.程序分析:可填在百位、 十位、个位的数字都是 1、 2、3、4。组成所有的排列后再去 掉不满足条件的排列。

分析

1.组合数问题,三个循环分别生成百、十、个位。筛除条件为:三个数字互不相等。
2.数据存储考虑到去重,用列表暂存,用集合去重再排序输出。

编码实现

1.编码实现(循环)

lst=[]
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i!=j and j!=k and i!=k:
                lst.append(i*100+j*10+k)
ls=sorted(list(set(lst)))
print("共计有{}个4位数,它们是:".format(len(ls)))
for i in ls:
    print(i)

运行结果

共计有244位数,它们是:
123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值