参考: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()