gpt4 book ai didi

python - 在 python 中创建 2 '*' 的递归幂

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:10 25 4
gpt4 key购买 nike

在pyschools中,我被2个递归函数的强大所困

    >>> createStars(0)      # 2 to power of 0 = 1    '*'    >>> createStars(1)      # 2 to power of 1 = 2    '**'    >>> createStars(2)      # 2 to power of 2 = 4    '****'    >>> createStars(3)      # 2 to power of 3 = 8    '********'

我想做的是如下:

def createStars(x):    if x == 0:        return '*'    else:        return '*' * x + createStars(x-1) 

但是,这似乎是“x”的总和,而不是 2 的幂。意思是,当 x 高于 2 时,这将中断

我知道如何递归地执行 2 的幂,但不知道在哪里更改才能使 createStars() 工作。

def power(x, n):    if n == 0:        return 1    else:        return x * power(x, n-1)

附言。我知道使用非递归方法很容易解决它。 但想寻求建议如何以递归方式进行。

谢谢。

最佳答案

def createStars(x):
if x == 0:
return '*'
else:
return createStars(x-1) * 2

(递归中的每一步都会使输出字符串中的星星数量加倍)。

关于python - 在 python 中创建 2 '*' 的递归幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27414913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com