Python練習100題一

2021-10-06 18:50:08 字數 1710 閱讀 1542

題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?

分析1:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去掉不滿足條件的排列。

result =

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)

:100

+ j*

10+ k)

print

(result)

# 列印資料結果

print

(len

(result)

)#列印資料個數

分析2:根據排列組合,從1,2,3,4這四個數中,任意取出三個數組成乙個三位數,並且每一位都不能重複,正好適用排列組合的方式取三次數字。

def

get_value

(n):

if n ==1:

return n

else

:return n*get_value(n-1)

defget_last_value

(n,m)

: first_item = get_value(n)

print

("n:%s value:%s"

%(n,first_item)

) second_item = get_value(m)

print

("m:%s value:%s"

%(m,second_item)

) third_iterm = get_value(n-m)

print

("(n-m):%s value:%s"%(

(n-m)

,third_iterm)

)return first_item/

(second_item*third_iterm)

if __name__ ==

"__main__"

: final_result = get_last_value(4,

1)*get_last_value(3,

1)*get_last_value(2,

1)# 根據排列組合取三次的組合

print

(final_result)

#這種方式只是獲得了有多少種組合,但是沒有給出具體的數值

補充:利用python計算c(n,m)

( nm

)\begin n\\ m\end

(nm​

) = n!m

!∗(n

−m)!

\frac

m!∗(n−

m)!n

!​

import math

n,m =

map(

int,

input()

.split())

print

(math.factorial(n)

//(math.factorial(m)

*math.factorial(n-m)

))

Python練習100題二

題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可可提成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於40萬元的部分,可提成3 60萬到100萬...

python練習100例 Python練習100例

filename cnt 0 count the sum of result fori inrange 1,5 forj inrange 1,5 fork inrange 1,5 ifi j andi k andj k print i 100 j 10 k cnt 1 print cnt 程式 題目...

python練習100例(一 四)

以後爭取每週更新10個例題 例1 有四個數字 1 2 3 4,能組成多少個互不相同且無重複數字的三位數?各是多少?m 0for i in range 1 5 for j in range 1 5 for k in range 1 5 if i j and i k and k j m m 1 prin...