当前位置 博文首页 > boysoft2002的专栏:一起挑战pythontip的题目(7)

    boysoft2002的专栏:一起挑战pythontip的题目(7)

    作者:[db:作者] 时间:2021-07-27 20:56

    第31题:山峰的个数
    题目描述:十一假期,小P出去爬山,爬山的过程中每隔10米他都会记录当前点的海拔高度(以一个浮点数表示), 这些值序列保存在一个由浮点数组成的列表h中。回到家中,小P想研究一下自己经过了几个山峰,请你帮他计算一下,输出结果。
    例如:h=[0.9,1.2,1.22,1.1,1.6,0.99], 将这些高度顺序连线,会发现有两个山峰,故输出一个2(序列两端不算山峰)
    示例:输入:h = [0.9, 1.2, 1.22, 1.1, 1.6, 0.99]
    输出:2

    >>> h = [0.9, 1.2, 1.22, 1.1, 1.6, 0.99]
    >>> k = 0
    >>> for i in range(1,len(h)):
    	if h[i-1]<h[i] and h[i]>h[i+1]:
    		k+=1
    
    		
    >>> print(k)
    2
    >>> 

    ============================================================
    第32题:三角形形状
    题目描述:给以一个三角形的三边长a,b和c(边长是浮点数),请你判断三角形的形状。
    若是锐角三角形,输出R,
    若是直角三角形,输出Z,
    若是钝角三角形,输出D,
    若三边长不能构成三角形,输出W.
    示例:输入:a = 3.0
    b = 5.0
    c = 4.0
    输出:Z

    >>> def func(a,b,c):
    	t = sorted([a,b,c])
    	d = t[2]**2-t[1]**2-t[0]**2
    	if d==0:
    		print('Z')
    	elif d>0:
    		print('D')
    	else:
    		print('R')
    
    		
    >>> a,b,c=3.0, 5.0, 4.0
    >>> func(a,b,c)
    Z
    >>> a,b,c=3.0, 5.0, 5.0
    >>> func(a,b,c)
    R
    >>> a,b,c=3.0, 3.0, 5.0
    >>> func(a,b,c)
    D
    >>> 

    ============================================================
    第33题:大幂次运算
    题目描述:给你两个正整数a,n
    示例:输入:a = 3453
    n = 0
    输出:1


    ============================================================
    第34题:密码生成
    题目描述:生活在当代社会,我们要记住很多密码,银行卡,qq,人人,微博,邮箱等等。小P经过一番思索之后,发明了下面这种生成密码方法:给定两个正整数a和b, 利用a / b我们会得到一个长度无限的小数(若a / b不是无限小数,比如1/2=0.5,我们认为0.5是0.5000000...,同样将其看做无限长的小数),小P将该小数点后第x位到第y位的数字当做密码,这样,无论密码有多长,小P只要记住a,b,x,y四个数字就可以了,牢记密码再也不是那么困难的事情了。现在告诉你a,b,x,y(0?
    示例:输入:a = 1
    b = 2
    x = 1
    y = 4
    输出:5000


    ============================================================
    第35题:最大连续子序列
    题目描述:给你一个整数list L, 如 L=[2,-3,3,50], 求L的一个连续子序列,使其和最大,输出最大子序列的和。
    例如,对于L=[2,-3,3,50], 输出53(分析:很明显,该列表最大连续子序列为[3,50]).
    示例:输入:L = [2, -3, 3, 50]
    输出:53

    >>> L = [2, -3, 3, 50]
    >>> func = lambda L:max(sum(j) for j in [L[j:i] for i in range(len(L),0,-1) for j in range(len(L))])
    >>> func(L)
    53
    >>> L = [2, -3, 3, 50, 5, 0, -1]
    >>> func(L)
    58
    >>> 

    ============================================================

    来源:

    Python 爬取pythontip网站的挑战题目(附全部题目178题)

    cs
    下一篇:没有了