问题描述
有一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
解决方案
首先对题目分析,根据题目可用数学等比数列将其值运算得出,由题目可知题目函数可用递归函数求解,先运用函数定义符号def自定义一个新的函数,利用row递归函数将输入值反复循环,再利用for循环对题目中小球下落次数赋值,得到第十次的下落值,后用return将得出的值返回并且输出之前定义的函数值。仍要对sums进行计算,在判断返回值时应注意所要打印的函数值是否满足递归函数的定义。
代码示例:
def row(n, sums, height):#def是定义新函数的符号,row是表示此函数为递归函数. if n == 10:return sums print(sums, height) return row(n+1, sums+(height*2), height/2) # row()表示将递归函数中的数值返回输出. print(row(1, 100, 50)) |
---|
100 50200 25.0250.0 12.5275.0 6.25287.5 3.125293.75 1.5625296.875 0.78125298.4375 0.390625299.21875 0.1953125299.609375 |
结语
学习掌握python函数中运算方法,使用递归函数解决问题,要熟悉python中if条件判断的运用方法。学习python函数中返回的函数意义。