第一题

#!/usr/bin/env python
#-*- coding:utf-8 -*-
'''
题目1:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
'''00
#思路:通过三个for循环实现遍历
# count = 0
# for i in range(1,5):
#     for j in range(1,5):
#         for k in range(1,5):
#             if i != j and i != k and j != k:
#                 a = i*100 + j*10 + k
#                 print("互不相同的数为%d"%a)
#                 count=count+1
# print(count)

#上述代码输出结果比较凌乱,如何管理数据?-列表储存,并通过函数调用
arr = []
def test_1():
    for i in range(1,5):
        for j in range(1,5):
            for k in range(1,5):
                if i != j and i != k and j != k:
                    num = i*100 + j*10 + k
                    arr.append(num)
    print("互不相同的数为%s\n总共%d"%(arr,len(arr))) #注意:print的位置不同,输出的结果不同;%s适合各种类型
test_1()

#函数的魅力:方便调用;不局限于三位数,可以是n位数,只要稍微修改数据

#其他方法(了解)
# arr = []
# import itertools
# temp_arr = list(itertools.permutations([1, 2, 3, 4], 3)) # 排列  # A_4^3 = (4)!/(4-3)! = (4*3*2*1)/1 = 24
#
# arr = [100*t[0]+10*t[1]+t[2] for t in temp_arr] #t 遍历temp_arr的每一个元素,而t[1]代表(1,2,3)的第一个元素
# print(len(arr),arr)
# print(len(temp_arr),temp_arr,temp_arr[0])

  

posted on 2018-11-02 12:48  RiceAChen  阅读(70)  评论(0)    收藏  举报

导航