智一面的面试题提供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