python练习题-有1、2、3、4四个数字,提问:能组成多少个互不相同且无重复数字的三位数?

使用Python探讨如何用1、2、3、4这四个数字组成互不相同且无重复数字的三位数,介绍了不同的实现代码及其运行结果。

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

思路:百位、十位、个位可选择的数字都是1、2、3、4;
此题需要的是互不相同无重复的三位数,所有百位等于十位不等于个位

range(a,b):表示从a开始,到b结束,但不包括b

一、实现的代码

print("实现方法一")
count=0
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if (i !=j) & (i !=k) &(j !=k):
                print(i*100+j*10+k,end='  ')
                count +=1
print('\n一共可以组成%d个不重复的三位数'%count)   #此处的\n用来换行输出
print("\n实现方法二")  #此处的\n用来换行输出
list=[]
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if (i !=j) & (i !=k) &(j !=k):
                list.append(i*100+j*10+k)
print(list)
print(len(list))
print("\n实现方法三")
from itertools import permutations
counter=0
for i in permutations([1,2,3,4],3):
    print('{}{}{}'.format(i[0],i[1],i[2]),end='  ')
    counter +=1
print(" ")
print('共有{}种组合'.format(counter))
print("\n实现方法四")
def f(n):
    list=[]
    for i in range(1,n+1):
        for j in range(1,n+1):
            for k in range(1,n+1):
                if (i !=j) and (i !=k) and (j !=k):
                    list.append(i*100+j*10+k)
    count=len(list)
    print(count)
    return list
if __name__=="__main__":
    print(f(4))

以上四种方法的运行结果:

实现方法一
123  124  132  134  142  143  213  214  231  234  241  243  312  314  321  324  341  342  412  413  421  423  431  432  
一共可以组成24个不重复的三位数

实现方法二
[123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432]
24

实现方法三
123  124  132  134  142  143  213  214  231  234  241  243  312  314  321  324  341  342  412  413  421  423  431  432   
共有24种组合

实现方法四
24
[123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值