欢迎来到天天文库
浏览记录
ID:1217451
大小:352.00 KB
页数:7页
时间:2017-11-08
《最大最小猴子吃桃的python程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、求最大值、最小值,解猴子吃桃问题的Python程序ylzhao2013.12.51.求数组元素的最大值解法1非递归法#求最大值的函数,非递归defMax(A,n):maxdata=A[0]foriinrange(1,n):ifA[i]>maxdata:maxdata=A[i]returnmaxdata#调用函数,求序列中的最大值while(1):#循环n=int(input("请输入元素个数:"))#输入元素个数ifn<1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input
2、("请输入第"+str(i+1)+"元素"))#输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行解法2一般递归法#求最大值的函数,一般递归defMax(A,n):ifn==1:returnA[0]#一个元素时直接返回else:m=Max(A,n-1)#前面n-1个元素的最大ifm3、1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input("请输入第"+str(i+1)+"元素"))#输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行解法3二分法递归#二分法递归求最大值的函数defMax(A,n):ifn==1:returnA[0]else:mid=n//2#中间元素的位置(下标)leftA=A[:mid]#左边子序列rightA=A[mid:]#右边子序列leftMax=4、Max(leftA,mid)#递归求左边的最大rightMax=Max(rightA,n-mid)#递归求右边的最大ifleftMax5、输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行测试结果:请输入元素个数:3请输入第1元素1请输入第2元素23请输入第3元素3它们的最大值为:23.0请输入元素个数:3请输入第1元素3请输入第2元素2请输入第3元素1它们的最大值为:3.0请输入元素个数:3请输入第1元素3请输入第2元素1请输入第3元素2它们的最大值为:3.0请输入元素个数:3请输入第1元素2请输入第2元素3请输入第3元素1它们的最大值为:3.0请输入元素个数:0题目2使用递归求数组元素的最小值解法1一般递归#求最小值的函数,一6、般递归defMin(A,n):ifn==1:returnA[0]#一个元素时直接返回else:m=Min(A,n-1)#前面n-1个元素的最小ifm>A[n-1]:#和最后一个元素比较returnA[n-1]#返回最小的else:returnm#调用函数,求序列中的最小值while(1):#循环n=int(input("请输入元素个数:"))#输入元素个数ifn<1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input("请输入第"+str(i+1)+"元素"))#输入a.a7、ppend(x)#添加到列表中print("它们的最小值为:",Min(a,n))#求最小值并显示print("")#换行解法2二分法递归#二分法递归求最小值的函数defMin(A,n):ifn==1:returnA[0]else:mid=n//2#中间元素的位置(下标)leftA=A[:mid]#左边子序列rightA=A[mid:]#右边子序列leftMin=Min(leftA,mid)#递归求左边的最小rightMin=Min(rightA,n-mid)#递归求右边的最小ifleftMin>rig
3、1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input("请输入第"+str(i+1)+"元素"))#输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行解法3二分法递归#二分法递归求最大值的函数defMax(A,n):ifn==1:returnA[0]else:mid=n//2#中间元素的位置(下标)leftA=A[:mid]#左边子序列rightA=A[mid:]#右边子序列leftMax=
4、Max(leftA,mid)#递归求左边的最大rightMax=Max(rightA,n-mid)#递归求右边的最大ifleftMax5、输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行测试结果:请输入元素个数:3请输入第1元素1请输入第2元素23请输入第3元素3它们的最大值为:23.0请输入元素个数:3请输入第1元素3请输入第2元素2请输入第3元素1它们的最大值为:3.0请输入元素个数:3请输入第1元素3请输入第2元素1请输入第3元素2它们的最大值为:3.0请输入元素个数:3请输入第1元素2请输入第2元素3请输入第3元素1它们的最大值为:3.0请输入元素个数:0题目2使用递归求数组元素的最小值解法1一般递归#求最小值的函数,一6、般递归defMin(A,n):ifn==1:returnA[0]#一个元素时直接返回else:m=Min(A,n-1)#前面n-1个元素的最小ifm>A[n-1]:#和最后一个元素比较returnA[n-1]#返回最小的else:returnm#调用函数,求序列中的最小值while(1):#循环n=int(input("请输入元素个数:"))#输入元素个数ifn<1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input("请输入第"+str(i+1)+"元素"))#输入a.a7、ppend(x)#添加到列表中print("它们的最小值为:",Min(a,n))#求最小值并显示print("")#换行解法2二分法递归#二分法递归求最小值的函数defMin(A,n):ifn==1:returnA[0]else:mid=n//2#中间元素的位置(下标)leftA=A[:mid]#左边子序列rightA=A[mid:]#右边子序列leftMin=Min(leftA,mid)#递归求左边的最小rightMin=Min(rightA,n-mid)#递归求右边的最小ifleftMin>rig
5、输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行测试结果:请输入元素个数:3请输入第1元素1请输入第2元素23请输入第3元素3它们的最大值为:23.0请输入元素个数:3请输入第1元素3请输入第2元素2请输入第3元素1它们的最大值为:3.0请输入元素个数:3请输入第1元素3请输入第2元素1请输入第3元素2它们的最大值为:3.0请输入元素个数:3请输入第1元素2请输入第2元素3请输入第3元素1它们的最大值为:3.0请输入元素个数:0题目2使用递归求数组元素的最小值解法1一般递归#求最小值的函数,一
6、般递归defMin(A,n):ifn==1:returnA[0]#一个元素时直接返回else:m=Min(A,n-1)#前面n-1个元素的最小ifm>A[n-1]:#和最后一个元素比较returnA[n-1]#返回最小的else:returnm#调用函数,求序列中的最小值while(1):#循环n=int(input("请输入元素个数:"))#输入元素个数ifn<1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input("请输入第"+str(i+1)+"元素"))#输入a.a
7、ppend(x)#添加到列表中print("它们的最小值为:",Min(a,n))#求最小值并显示print("")#换行解法2二分法递归#二分法递归求最小值的函数defMin(A,n):ifn==1:returnA[0]else:mid=n//2#中间元素的位置(下标)leftA=A[:mid]#左边子序列rightA=A[mid:]#右边子序列leftMin=Min(leftA,mid)#递归求左边的最小rightMin=Min(rightA,n-mid)#递归求右边的最小ifleftMin>rig
此文档下载收益归作者所有