抛小球
2017-02-10 21:15
337 查看
题目描述
小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推知道全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数)给定四个整数A,B,C,D,请返回所求结果。
测试样例:
100,90,80,70
返回:1020
题目来源:京东
简单题,精度控制
方法一:
# -*- coding:utf-8 -*-
class Balls:
def calcDistance(self, A, B, C, D):
# write code here
def fun(x):
num = x
while x >= 0.0000001:
num += x
x /= 2.0
import math
return math.ceil(num)
return int(fun(A) + fun(B) + fun(C) + fun(D))
if __name__ == "__main__":
a = Balls()
print a.calcDistance(100,90,80,70)
方法二:
设整数为x,得到公式:
sn = x + x * (1 + 1/2 + 1/4 + ... + (1/2)^m)
sn = x + x * (1- (1/2)^m) / (1-1/2)
(1/2)^m 无限接近于0
sn = x + x * 2;
sn = 3x;
所以答案为 3*(A+B+C+D)
# -*- coding:utf-8 -*-
class Balls:
def calcDistance(self, A, B, C, D):
# write code here
return 3 * (A + B + C + D)
if __name__ == "__main__":
a = Balls()
print a.calcDistance(100,90,80,70)
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- 浅析时钟向量算法
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例