python 练习题1--打印三位不重复数字

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

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

程序源代码:

源码:#!/usr/bin/python# -*- coding: UTF-8 -*- 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):              print i,j,k

我的源码:

num=5#num=raw_input("input number to get three-digital number:")list1=range(1,num)counter=0for i in list1:    for j in list1:        if(i!=j):            for k in list1:                if(i!=j and j!=k and i!=k):                    print(i*100+j*10+k)                    counter+=1                else:                    continue        else:            continue

print("total :"+str(counter))

其他人的解法参考:
  1. 使用列表形式,并计算总结:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    # 原答案没有指出三位数的数量,添加无重复三位数的数量
    
    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)
    print d

  2. 盼盼

    [email protected]

    将for循环和if语句综合成一句,直接打印出结果

    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    
    list_num = [1,2,3,4]
    
    list  = [i*100 + j*10 + k for i in list_num for j in list_num for k in list_num if (j != i and k != j and k != i)]
    
    print (list)

  3. 习惯乌龙茶

    [email protected]

    参考方法(设置最大,最小值):

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    line=[]
    for i in range(123,433):
    	a=i%10
    	b=(i%100)//10
    	c=(i%1000)//100
    	if a!=b and b!=c and a!=c  and 0<a<5 and 0<b<5 and 0<c<5 :
    		print (i)
    		line.append(i)
    print(‘the total is :‘,len(line))
				
时间: 2024-11-07 17:45:41

python 练习题1--打印三位不重复数字的相关文章

js里面获取三位不重复值

<html><body> <script type="text/javascript"> var d = new Date();var sz = d.getMilliseconds(); sz = sz.toString();alert(sz.length);if(sz.length < 3){ sz = '0' + sz;}document.write(sz); </script> </body></html&g

python 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。(用列表推导式)

count = 0 #计数器 for x in range(1,5): for y in range(1,5): for z in range(1,5): if x!=y and x!=z and y!=z: num=x*100+y*10+z print(num,end=' ') count += 1 print() print('无重复数字的三位数的个数:'+str(count)) #列推导式 num1 =[x*100+y*10+z for x in range(1,5) for y in r

Python练习题 024:求位数及逆序打印

[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- 这题如果不用递归,实在太简单了!!!代码上: str = input('请输入一个不多于5位的正整数:') print('这个数字是%s位数,逆序为%s.' % (len(str), str[::-1])) 输出结果如下: 请输入一个不多于5位的正整数:45931这个数字是5位数,逆序为13954

Python练习题4(列表去重):[5,3,4,&#39;ok&#39;,4,3,&#39;abc&#39;,8,52,&#39;ok&#39;]去除列表中重复内容 方法一:使用set 方法二:不使用set,自己写方法

方法一:利用集合去重 1 list1 = [5,3,4,'ok',4,3,'abc',8,52,'ok'] 2 list1=list(set(list1)) 3 print(list1) 方法二:此方法略微冗余,先判断元素是否重复,再将重复元素提取并保存到新列表中,再for 新建的列表元素,删除原列表 1 def list_dup(ls): 2 list2 = [] 3 length = len(ls) #获取列表元素个数 4 for i in range(0,length-1): 5 for

python练习题:循环打印嵌套列表

好久没写博文了,添加一个练习题,选自<head_first_python>~~ python列表:以中括号开始和结束"[]":列表项以逗号","分隔开,使用赋值操作符"="赋予一个标识符.如: movies=["the holy",1975,"terry jones",91,["graham",["michael","john",&qu

【源码】用1,2,2,3,4,5这六个数字,写一个函数,打印出所有不同的排序,要求:4不能放在第三位,3与5不能相连(C语言实现)

帮朋友做的,好像是一个面试题.暴力方式. #include <stdio.h> #include <stdlib.h> #include <string.h> //判断这个数是不是由1.2.2.3.4.5几位数字组成 int func(int n) { int a[5] = {0}; for(int i = 0; i < 6; i++) { int bit = n % 10; n /= 10; switch(bit) { case 1: a[0]++; break

验证密码不允许有连续三位重复的正则表达式

var re = /(\w)*(\w)\2{2}(\w)*/g; js中验证密码不允许有连续三位重复的正则表达式 这个正则的意思就是任意的字母或数字或下划线(捕获为组1)0次到多次跟着一个任意的字母或数字或下划线(捕获为组2)紧跟着“\2{2}”是指反向捕获 组2(就是这里的内容要和组2一样的并且出现2次,所以就等于三个重复的)后面跟着一个任意的字母或数字或下划线0次到多次 <!doctype html> <html lang="en"> <head>

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

# encoding:utf-8 # p001_1234threeNums.py def threeNums(): '''题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?''' print None count = 0 nums = [] for index1 in xrange(1,5): for index2 in xrange(1,5): for index3 in xrange(1,5): if index1 != index2 and index1 !

9.10扩展性与存储限制(三)——若只有4KB内存可用,该如何打印数组中所有重复的元素

/** * 功能:给定一个数组,包含1到N的整数,N最大为32000,数组可能含有重复的值,且N的取值不定. * 若只有4KB内存可用,该如何打印数组中所有重复的元素. */ /** * 思路:4KB最多殉职8*4*2^10个比特.比32000大.创建含有32000个比特的位向量,其中每个比特代表一个整数. * 遇到重复元素,打印出来. * @param array */ public static void checkDuplicates(int[] array){ BitSet bs=new