參考:https://blog.csdn.net/weixin_41084236/article/details/81564963
實例001:數字組合
題目 有四個數字:1、2、3、4,能組成多少個互不相同且無重復數字的三位數?各是多少?
最直觀的解題思路:個、十、百位上循環放入1-4這四個數字,判斷當他們互不相同時,即可輸出。
count=0 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 b!=c: print(a,b,c) count+=1 print('總計有%d個不同的三位數'%count)
實例008:九九乘法表
題目 輸出 9*9 乘法口訣表。
解題思路:行1-9循環,列1-9循環,
for x in range(1,10): for y in range(1,x+1): print('%-2d×%2d=%2d'%(x,y,x*y),end=' ') print()
實例080:猴子分桃
題目 海灘上有一堆桃子,五只猴子來分。第一只猴子把這堆桃子平均分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?
解題思路:
monkey=5 #猴子的數量 #桃子總數n def show(n): #循環次數(猴子的數量) for i in range(1,monkey+1): #t下一只猴子應該帶走的桃子數量 t=(n-1)/monkey #格式化輸出相關信息 print('%d,桃子有%.2f個,第%d只猴子吃1個,拿走了%.2f個。'%(i,n,i,t)) #每只猴子吃完,並拿走之后,剩下的桃子數量 n=(monkey-1)*t #定義功能函數 def fun(): #從1開始,第5只猴子拿走的桃子數量,從1一直往后加1,直到條件滿足 k=1 #一直判斷,直到 while True: t=k for i in [5,4,3,2]: #當前猴子拿走的桃子數為t,吃拿之前所面對的桃子總數tc為monkey*t+1,且tc能被分成4份。 #前一個猴子拿走的桃子數為tp,則有monkey-1)*tp=monkey*t+1 tc=monkey*t+1 if tc%(monkey-1)!=0:break #前一個猴子拿走的桃子數 t=tc/(monkey-1) #當循環完之后,t就是第一只猴子拿走的桃子 else: print('猴子%d只'%monkey) print('桃子總數要%d個'%(monkey*t+1)) show(monkey*t+1) break k=k+1 fun()