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=0
for 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.    盼盼

      946184399@qq.com

    將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.    習慣烏龍茶

      realsongtao@163.com

    參考方法(設置最大,最小值):

    #!/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))




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM