python组成的三位数是多少_python练习实例1--------给定数字组成三位数

本篇博客探讨了如何使用Python从1、2、3、4这四个数字中组成互不相同且无重复数字的三位数。通过四种不同的解法进行实现,包括使用for循环、集合、列表推导式以及itertools库的permutations函数,分析了各自的时间复杂度和适用场景。
摘要由CSDN通过智能技术生成

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

来看第一种解法

1 num = [1, 2, 3, 4]2 """

3 根据题中'互不相同'要求,创建一个集合(去重),存放三位数4 注意{}仅用于创建空字典!set()函数用来创建集合5 """

6 s =set()7 #遍历整个列表三次,组成三位数

8 for i innum:9 for j innum:10 #去掉与i重复的数字

11 if j !=i:12 for k innum:13 #去掉与i,j重复的数字

14 if k != j and k !=i:15 n = 100*i + 10*j +k16 #注意集合添加元素的方法为add和update

17 s.add(n)18 print("无重复的三位数个数:", len(s))19 print("分别是:", s)

这种解法时间复杂度为O(n2), 其中的列表可以换成range生成器

1 s =set()2 #遍历整个列表三次,组成三位数

3 for i in range(1, 5):4 for j in range(1, 5):5 #去掉与i重复的数字

6 if j !=i:7 for k in range(1, 5):8 #去掉与i,j重复的数字

9 if k != j and k !=i:10 n = 100*i + 10*j +k11 #注意集合添加元素的方法为add和update

12 s.add(n)13 print("无重复的三位数个数:", len(s))14 print("

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值