码迷,mamicode.com
首页 > 编程语言 > 详细

【python】编程语言入门经典100例--20

时间:2016-03-04 19:27:58      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:题目:一球从100米高度自由落下   每次落地后反跳回原高度的一半;再落下   求它在第10次落地时   共经过多少米?第10次反弹多高?   

  1 #题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?


代码:


  2 
  3 h = 0
  4 li = []
  5 for i in range(1,11):
  6     s = 100/(2**(i-1))
  7     li.append(s)
  8 
  9 for x in li:
 10     h += x
 11 print(li)
 12 print(‘球在第十次落地时,共经过了%.10f米,第10此反弹的高度是%.10f‘%((h*2-100),li[-1]/2))


运行结果:


[root@HK code_100]# python code_20.py 
[100.0, 50.0, 25.0, 12.5, 6.25, 3.125, 1.5625, 0.78125, 0.390625, 0.1953125]
球在第十次落地时,共经过了299.6093750000米,第10此反弹的高度是0.0976562500
[root@HK code_100]#


代码解释:


  2 
  3 h = 0                            #初始化总高度为0
  4 li = []                          #初始化每次落地的高度列表为空
  5 for i in range(1,11):            #遍历10此落地
  6     s = 100/(2**(i-1))           #s为每次落地的高度(100,50,25,12.5.........)
  7     li.append(s)                 #将每次落地的高度放入列表li
  8 
  9 for x in li:                     #遍历这个高度列表
 10     h += x                       #将每次落地的高度累加
 11 print(li)                        #打印以便验证这个高度list
 12 print(‘球在第十次落地时,共经过了%.10f米,第10此反弹的高度是%.10f‘%((h*2-100),li[-1]/2))
                                     #总共经过的米数是列表累加的两倍减去100(每个过程包括弹起和落地两部分距离,
                                     #第一次落地没有之前的弹起,所以减去100),第十次落地后弹起的距离,是第十次落地的距离除以2

                                                                

本文出自 “学习笔记” 博客,请务必保留此出处http://netsyscode.blog.51cto.com/6965131/1747625

【python】编程语言入门经典100例--20

标签:题目:一球从100米高度自由落下   每次落地后反跳回原高度的一半;再落下   求它在第10次落地时   共经过多少米?第10次反弹多高?   

原文地址:http://netsyscode.blog.51cto.com/6965131/1747625

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!