欢迎来到天天文库
浏览记录
ID:8853307
大小:352.00 KB
页数:7页
时间:2018-04-09
《最大最小猴子吃桃的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=[]#开始列表为空fori
2、inrange(0,n):#循环输入n个数x=float(input("请输入第"+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、returnm#调用函数,求序列中的最大值while(1):#循环n=int(input("请输入元素个数:"))#输入元素个数ifn<1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input("请输入第"+str(i+1)+"元素"))#输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行解法3二分法递归#二分法递归求最大值的函4、数defMax(A,n):ifn==1:returnA[0]else:mid=n//2#中间元素的位置(下标)leftA=A[:mid]#左边子序列rightA=A[mid:]#右边子序列leftMax=Max(leftA,mid)#递归求左边的最大rightMax=Max(rightA,n-mid)#递归求右边的最大ifleftMax5、int(input("请输入元素个数:"))#输入元素个数ifn<1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input("请输入第"+str(i+1)+"元素"))#输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行测试结果:请输入元素个数:3请输入第1元素1请输入第2元素23请输入第3元素3它们的最大值为:23.0请输入元6、素个数: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一般递归#求最小值的函数,一般递归defMin(A,n):ifn==1:returnA[0]#一个元素时直接返回else:m=Min(A,n-1)#前面n-1个元素的最小ifm>A[n-1]:#和最后一7、个元素比较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.append(x)#添加到列表中print("它们的最小值为:",Min(a,n))#求最小值并显示prin8、t("")#换行解法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、returnm#调用函数,求序列中的最大值while(1):#循环n=int(input("请输入元素个数:"))#输入元素个数ifn<1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input("请输入第"+str(i+1)+"元素"))#输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行解法3二分法递归#二分法递归求最大值的函
4、数defMax(A,n):ifn==1:returnA[0]else:mid=n//2#中间元素的位置(下标)leftA=A[:mid]#左边子序列rightA=A[mid:]#右边子序列leftMax=Max(leftA,mid)#递归求左边的最大rightMax=Max(rightA,n-mid)#递归求右边的最大ifleftMax5、int(input("请输入元素个数:"))#输入元素个数ifn<1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input("请输入第"+str(i+1)+"元素"))#输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行测试结果:请输入元素个数:3请输入第1元素1请输入第2元素23请输入第3元素3它们的最大值为:23.0请输入元6、素个数: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一般递归#求最小值的函数,一般递归defMin(A,n):ifn==1:returnA[0]#一个元素时直接返回else:m=Min(A,n-1)#前面n-1个元素的最小ifm>A[n-1]:#和最后一7、个元素比较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.append(x)#添加到列表中print("它们的最小值为:",Min(a,n))#求最小值并显示prin8、t("")#换行解法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、int(input("请输入元素个数:"))#输入元素个数ifn<1:#个数小于0结束breakelse:#个数大于0输入元素a=[]#开始列表为空foriinrange(0,n):#循环输入n个数x=float(input("请输入第"+str(i+1)+"元素"))#输入a.append(x)#添加到列表中print("它们的最大值为:",Max(a,n))#求最大值并显示print("")#换行测试结果:请输入元素个数:3请输入第1元素1请输入第2元素23请输入第3元素3它们的最大值为:23.0请输入元
6、素个数: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一般递归#求最小值的函数,一般递归defMin(A,n):ifn==1:returnA[0]#一个元素时直接返回else:m=Min(A,n-1)#前面n-1个元素的最小ifm>A[n-1]:#和最后一
7、个元素比较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.append(x)#添加到列表中print("它们的最小值为:",Min(a,n))#求最小值并显示prin
8、t("")#换行解法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
此文档下载收益归作者所有