python - 如何使用递归多次划分数字并跟踪迭代?

标签 python recursion

我正在尝试创建一个函数,它将整数参数减半,直到它小于 1。我还想跟踪执行此操作所需的迭代次数。到目前为止,这是我所拥有的,但我坚持要在递归案例中放入什么:

def case(number):
    if number == 1:
       return 1
    else:
       return number * 0.50    # not sure how to do this part
case(20)

例如,如果我将 20 作为“case”的参数传递,我希望递归 case/函数执行 20 * 0.50(或 20/2)= 10,然后取 10 * 0.50 = 5, 然后取 5 * 0.50 ect.. 直到数字小于 1。

在此示例中,需要 6 次迭代才能低于 1 (0.625)。

如何让递归案例继续除以或取一半的数字,并在控制台打印迭代次数?

注意:我知道 while 循环会更适合这种情况,但我正在工作的项目中,递归会让以后更容易。

谢谢你的帮助!

最佳答案

def case(number):
    if number <= 1: # base case (exit)
       return 1
    else:
       return 1+case(number * 0.50) # recursive case

关于python - 如何使用递归多次划分数字并跟踪迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53163393/

相关文章:

c# - 我如何列出有向图中的每条路径? (C#)

javascript - 递归函数创建树

c++ - 在 C/C++ 中递归查找最大差值对

python - OpenERP缓存功能

python - 如何让 Pyplot 识别曲线图中的高原(几乎为 0 斜率),然后打印高原的 ydata 值?

python - 是否可以使用 python 获取网页的前几个,比如 1K?

java - 使用递归查找系列

android - 如何在 Ubuntu 中使用 Appium 进行 Android 单元测试

python - 如何使用python在Excel单元格中显示嵌入的文本文件

java - 删除双向递归关系的最简单方法?