【问题标题】:Understanding recursive triangle number function了解递归三角数函数
【发布时间】:2020-05-14 03:24:11
【问题描述】:

我有以下递归函数,它返回第 n 个三角形数。您能否解释一下输出是如何的,例如,当我运行how(4) 时,10

def how(n):
   if(n==1):
      return 1;
   else:
      return(n+how(n-1))
print(how(4))

【问题讨论】:

    标签: python python-3.x function recursion math


    【解决方案1】:

    函数逻辑如下——如果n1,则返回1。否则,返回n + how(n-1)。如果我们单步执行how(4) 的函数,我们可以看到它是如何工作的:

    how(4) - returns 4 + how(3)
    how(3) - returns 3 + how(2)
    how(2) - returns 2 + how(1)
    how(1) - returns 1
    

    把所有这些放在一起,以下是等价的:

    how(4) - returns 4 + how(3)
    how(4) - returns 4 + 3 + how(2)
    how(4) - returns 4 + 3 + 2 + how(1)
    how(4) - returns 4 + 3 + 2 + 1 = 10
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 2016-04-09
      • 2015-11-13
      • 1970-01-01
      相关资源
      最近更新 更多