Python Tip(31~35)题详解
来源:互联网 发布:网贷数据公司怎么样 编辑:程序博客网 时间:2024/06/10 01:17
题目31:山峰的个数
描述:十一假期,小P出去爬山,爬山的过程中每隔10米他都会记录当前点的海拔高度(以一个浮点数表示),
这些值序列保存在一个由浮点数组成的列表h中。回到家中,小P想研究一下自己经过了几个山峰,请你帮他计算一下,输出结果。
例如:h=[0.9,1.2,1.22,1.1,1.6,0.99], 将这些高度顺序连线,会发现有两个山峰,故输出一个2(序列两端不算山峰)
答案:
count = 0for i in range(1,len(h)-1): if h[i]>h[i+1] and h[i]>h[i-1]: count += 1print count
题目32:三角形形状
描述:给以一个三角形的三边长a,b和c(边长是浮点数),请你判断三角形的形状。
若是锐角三角形,输出R,
若是直角三角形,输出Z,
若是钝角三角形,输出D,
若三边长不能构成三角形,输出W.
答案:首先要知道知道三边,如何判断三角形形状的条件,即若
da = a*adb = b*bdc = c*cdm = max([da,db,dc])op = da+db+dc-dmif ((a+b)>c) and ((a+c)>b) and ((b + c)>a): if dm==op: print 'Z' elif dm>op: print 'D' else: print 'R'else: print 'W'
题目33:大幂次运算
描述:给你两个正整数a(0 < a < 100000)和n(0 <= n <=100000000000),计算
答案:这是我的算法。
print pow(a,n,20132013)
举一反三
1.这算法比较复杂啊
# -*- coding: UTF-8 -*-def quickmul(x, n, mod): ans = 1 t = x while n: if n & 1: ans = (ans * t) % mod t = t * t % mod n >>= 1 return ansprint(quickmul(a, n, 20132013))
2.别人的算法,看懂就行
# -*- coding: UTF-8 -*-b = bin(n)[-1:1:-1]m = ar = a if b[0] == '1' else 1for i in xrange(1,len(b)): m = m**2 % 20132013 if b[i]=='1': r = r * m % 20132013print r
题目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,b <= 20132013, 0 < x <= y < 100000000000),请你输出密码。
例如:a = 1, b = 2, x = 1, y = 4, 则 a / b = 0.5000000…, 输出小数点后第1到4位数字,即5000
答案:
题目35:最大连续子序列
描述:给你一个整数list L, 如 L=[2,-3,3,50], 求L的一个连续子序列,使其和最大,输出最大子序列的和。
例如,对于L=[2,-3,3,50], 输出53(分析:很明显,该列表最大连续子序列为[3,50]).
答案:
past, now, ret = 0, 0, 0for x in L: now = now + x past = min(past, now) ret = max(ret, now-past)print ret
举一反三
1.
# -*- coding: UTF-8 -*-L=[2,-3,3,50]a=[]b=[]for i in L: a.append(a[-1]+i if a else i) b.append(a[-1] - min(a) if min(a)< 0 else a[-1])print max(b)
2.
# -*- coding: UTF-8 -*-L=[2,-3,3,50]maxx = L[0]cur = 0for i in range(0, len(L)): cur += L[i] if cur > maxx: maxx = cur if cur < 0: cur = 0print(maxx)
- Python Tip(31~35)题详解
- Python Tip(41~45)题详解
- Python Tip(46~50)题详解
- Python Tip(51~55)题详解
- Python学习 Tip摘录
- python学习tip记录
- python Tip 算法题目
- Python 入门教程 2 ---- Tip Calculator
- 编程题Tip
- tip
- Tip
- tip
- Tip:
- TIP
- Tip
- tip
- Tip
- Tip
- python自动化之路-day9
- Android Studio--不能运行程序
- javascript小知识点
- APP自动化测试框架
- Grid Development Tools
- Python Tip(31~35)题详解
- 数据结构------链表总结
- oracle like使用的一点误区
- MongoDB全版本下载地址
- ArcGIS地图服务发布步骤
- Pingpong/sky 扩展实现 Laravel 多模块化开发
- 交换排序(冒泡,快速排序)
- Sass学习之路(8)——拓展/继承/占位符
- 利用securecrt在linux与windows之间传输文件