资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
求最大值、最小值,解猴子吃桃问题的Python程序ylzhao 2013.12.51.求数组元素的最大值解法1 非递归法#求最大值的函数,非递归def Max(A,n): maxdata=A0 for i in range(1,n): if Aimaxdata: maxdata=Ai return maxdata#调用函数,求序列中的最大值while(1): #循环 n=int(input(请输入元素个数:) #输入元素个数 if n1: #个数小于0结束 break else: #个数大于0输入元素 a= #开始列表为空 for i in range(0,n): #循环输入n个数 x=float(input(请输入第+str(i+1)+元素) #输入 a.append(x) #添加到列表中 print(它们的最大值为:,Max(a,n) #求最大值并显示 print() #换行解法2 一般递归法#求最大值的函数,一般递归def Max(A,n): if n=1: return A0 #一个元素时直接返回 else: m=Max(A,n-1) #前面n-1个元素的最大 if mAn-1: #和最后一个元素比较 return An-1 #返回最大的 else: return m#调用函数,求序列中的最大值while(1): #循环 n=int(input(请输入元素个数:) #输入元素个数 if n1: #个数小于0结束 break else: #个数大于0输入元素 a= #开始列表为空 for i in range(0,n): #循环输入n个数 x=float(input(请输入第+str(i+1)+元素) #输入 a.append(x) #添加到列表中 print(它们的最大值为:,Max(a,n) #求最大值并显示 print() #换行解法3 二分法递归#二分法递归求最大值的函数def Max(A,n): if n=1: return A0 else: mid=n/2 #中间元素的位置(下标) leftA=A:mid #左边子序列 rightA=Amid: #右边子序列 leftMax=Max(leftA,mid) #递归求左边的最大 rightMax=Max(rightA,n-mid) #递归求右边的最大 if leftMaxrightMax: #比较左右子序列的最大值 return rightMax #返回较大的 else: return leftMax#调用函数,求序列中的最大值while(1): #循环 n=int(input(请输入元素个数:) #输入元素个数 if nAn-1: #和最后一个元素比较 return An-1 #返回最小的 else: return m#调用函数,求序列中的最小值while(1): #循环 n=int(input(请输入元素个数:) #输入元素个数 if nrightMin: #比较左右子序列的最小值 return rightMin #返回较小的 else: return leftMin#调用函数,求序列中的最小值while(1): #循环 n=int(input(请输入元素个数:) #输入元素个数 if n0 and n11): num=monkeypeach(n) #调用函数得到计算结果 print(第,n,天桃子的数量为:,num) n=int(input(请输入天数:)print(程序结束)测试结果
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号