python习题总结(11)——若干个数,组成若干位,无重复数字

原创 2018年04月15日 16:42:16
#题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
def nums():
    nums = []
    for i in range(1,5):
        for j in range(1,5):
            if j != i:
                for k in range(1,5):
                    if k != i and k != j:
                        num = i*100 + j*10 + k
                        nums.append(num)
    return nums
#连续数字,构建进制数,五进制
def digits():
    digits = []
    fives = [2,2,1] 
    for i in range(int('123',5),int('432',5)+1):
        fives[0] += 1
        for j in range(len(fives)):
            flag = True
            if fives[j] == 5:
                fives[j] = 0
                if j+1 == len(fives):
                    fives.append(0)
                fives[j+1] += 1
                flag = False
            if flag: break
        set1 = set(fives)
        if len(fives) == len(set1) and (0 not in set1):
            sum = 0
            for i in range(-1,-len(fives)-1,-1):
                sum = sum * 10 + fives[i]
            digits.append(sum)   
    return  digits
#延伸,若干个数组成若干位无重复数字
#字典,集合实现,递归即循环? 字典key记录组成的数字,value(用字典)记录剩余没有使用的数字,每一次循环构造新的k,v对
#{1:{2,3,4},                      2:{1,3,4},3:{1,2,4},4:{1,2,3}}
#{12:{3,4},13:{2,4},14:{2,4}}
def numbers(lst,num,dics = None):  
    if dics == None: dics = {0:set(lst)}
    if num == 0: return [i for i in dics]
    nums = {}
    for k,v in dics.items():
        for i in v:
            if k == 0 and i ==0:
                continue
            nums.update({k*10+i:v-{i,}})
    return numbers(lst,num-1,nums)

#不用递归,循环实现
def numsfor(lst,num):
    dics = {0:set(lst)}
    for i in range(num):
        nums = {}
        for k,v in dics.items():
            for j in v:
                if k == 0 and j == 0:
                    continue
                nums.update({k*10+j:v-{j,}})
            dics = nums
    return [i for i in dics]


Swift无死角教学

-
  • 1970年01月01日 08:00

Python 案例001 (有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数)

题目内容来自网络 ,加入了个人理解的过程 ,和点评 #!/usr/bin/python # -*- coding: UTF-8 -*- #题目:有四个数字:1、2、3、4,能组成多少个互不相同...
  • haohaixingyun
  • haohaixingyun
  • 2017-07-17 12:40:24
  • 1159

【程序11】 题目:有1、2、3、4个数字,能组成多少个互不相同且无 重复数字的三位数?都是多少?

/* 2017年3月6日11:30:37 java基础50道经典练习题 例11 Athor: ZJY Purpose: 【程序11】 题目:有1、2、3、4个数字,能组成多少个互不相同且...
  • xiyuan255
  • xiyuan255
  • 2017-03-14 08:43:52
  • 379

python组合无重复三位数

# -*- coding: utf-8 -*- # 简述:这里有四个数字,分别是:1、2、3、4 #提问:能组成多少个互不相同且无重复数字的三位数?各是多少? def f(n): list=...
  • Guo_Apple
  • Guo_Apple
  • 2017-03-31 09:47:36
  • 773

python 练习题 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

1
  • xuebi330ml
  • xuebi330ml
  • 2018-02-27 15:51:30
  • 73

有1、2、3、4四个数字,可以组成多少个互不相同且无重复的三位数?都是多少?

这个题呢,顾名思义,就是说一个三位数的每一位都是1、2、3、4,个位十位百位上的数字不能重复。 编程原理很简单,分别定义三个变量代表个位十位百位,然后使用for循环嵌套每一层循环代表一位数,如果个位...
  • Quinn0918
  • Quinn0918
  • 2017-03-29 19:55:45
  • 982

Python——有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 代码如下: for x in range(1,5): for y in range(1,5): ...
  • u013901768
  • u013901768
  • 2017-07-19 20:09:41
  • 3532

VB编程:有5、6、8、9四个数字,能够组成多少个互不相同且无重复数字的三位数?

Dim a(3) as integer Dim i%,j%,k%,m%,str$ a(0)=5:a(1)=6:a(2)=8:a(3)=9:m=0:str="" for i=0 to 3 for...
  • u012187684
  • u012187684
  • 2014-03-08 20:40:40
  • 581

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

有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?...
  • Dai___Dai
  • Dai___Dai
  • 2017-10-30 18:43:50
  • 272

1234输出不同且不重复的三位数

#有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? #list=['1','2','3','4'] list=[1,2,3,4] for i in list: ...
  • u010225788
  • u010225788
  • 2017-04-17 17:55:01
  • 1081
收藏助手
不良信息举报
您举报文章:python习题总结(11)——若干个数,组成若干位,无重复数字
举报原因:
原因补充:

(最多只允许输入30个字)