题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
1、用普通for循环实现
#coding=utf-8
n=0
print '1,2,3,4能组成互不相同且无重复数字的三位数如下:'
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 k!=i:
n+=1
print i*100+j*10+k
print '个数为:%d'%n2、用list实现
#coding=utf-8
num=[1,2,3,4]
list=[]
for i in num:
for j in num:
for k in num:
if i!=j and j!=k and k!=i:
list.append(i*100+j*10+k)
print '1,2,3,4能组成互不相同且无重复数字的三位数:%s'%list
print '三位数个数为:%d'%len(list)3、list简化版
#coding=utf-8
num=[1, 2, 3, 4]
list=[i * 100 + j * 10 + k for i in num for j in num for k in num if (j != i and j != k and k != i)]
print '1,2,3,4能组成互不相同且无重复数字的三位数:%s'%list
print '三位数个数为:%d'%len(list)4、用set去重实现
#coding=utf-8
num=['1','2','3','4']
list=[]
for i in num:
for j in num:
for k in num:
if len(set(i+j+k))==3:
list=list+[int(i+j+k)]
print '1,2,3,4能组成互不相同且无重复数字的三位数:%s'%list
print '三位数个数为:%d'%len(list)5、用自带排列函数实现
#coding=utf-8
from itertools import permutations
n=0
print "三位数如下:"
for i in permutations('1234',3):
print(''.join(i))
n+=1
print("个数为:%s"%n)
本文通过四种不同的编程方法探讨了如何利用数字1、2、3、4生成所有可能的不重复三位数组合,并统计了组合数量。涉及循环结构、列表操作、集合应用及排列函数等编程技巧。
1万+

被折叠的 条评论
为什么被折叠?



