五人分鱼1.问题A、B、C、D、E五个人一起打了一晚上鱼,最后累得分头睡觉。第二天A先起床,他把鱼分成5份,多出来的扔掉,自己拿走。B第二次醒来,同样把鱼分成5份,多出来的扔掉,拿走自己的一份。然后C、D、E依次醒来,以同样的方式分鱼,问他们至少钓到了几条鱼?2.用穷举法解决问题。假设有x条鱼,那么x-1可以除以5;剩余鱼的数量为((x-1)/5)*4,也满足前面的条件。python代码如下:deffish():"""五人分享鱼"""fish=1whileTrue:total=fishenough=Truefor_inrange(5):if(total-1)%5==0:total=(total-1)//5*4else:enough=Falsebreakifenough:print(fish)breakfish+=1归并排序排序思路:将一个数组分成两个数组,然后分开将每个数组平均分为两个数组,直到每个数组中只有一个元素;然后将这两个数组排序并合并成一个有序数组,直到最后合并完成。python代码如下:defmerge_sort(arr):"""合并/分治排序"""iflen(arr)<2:returnarr[:]mid=len(arr)//2left=merge_sort(arr[:mid])right=merge_sort(arr[mid:])returnmerge(left,right)defmerge(left,right):print(left)print(right)print('\n')结果=[]index_left,index_right=0,0whileindex_left
