智一面的面试题提供python的测试题
使用地址:http://www.gtalent.cn/exam/interview?token=906315a76b5c14231889351088713f76

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

程序分析
可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。

解法1 常规思维
程序编写

#排列组合案例
 
count=0
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if( i != k ) and (i != j) and (j != k):
                count+=1
                print (i,j,k)
print("无重复的数字总共有:",count)
输出的结果

解法2 采用数组
程序编写

d=[]
for a in range(1,5):
    for b in range(1,5):
        for c in range(1,5):
            if (a!=b) and (a!=c) and (c!=b):
                d.append([a,b,c])
print("无重复的数字总共有:", len(d))
for i in d:
    print(i)
输出的结果

解法3 内置迭代器
程序编写

from itertools import permutations
 
for i in permutations([1, 2, 3, 4], 3):
    print(i)
输出的结果

解法4 列表实现
程序编写

list = [1,2,3,4]
for i in list:
    list1 = list.copy()
    list1.remove(i)
    for j in list1:
        list2 = list1.copy()
        list2.remove(j)
        for k in list2:
            print(i, j, k)
输出的结果


————————————————
我们的python技术交流群:941108876
智一面的面试题提供python的测试题
使用地址:http://www.gtalent.cn/exam/interview?token=364151fab9fb6e1b468f50b4d83afd42