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

840

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



