我想递归数日志cylces在我的功能计算递归`日志(日志(LOG(134)))`
logCounter <- function(number) {
k <- 0
if(k>=0){
k = k+1
}
result <- log(number)
if (result > 1) {
logCounter(result)
} else {
return(k)
}
}
logCounter(123)#returns 3 because log(log(log(123))) < 1
然而,我的柜台k
不工作,我会检查。因此,我真的很感谢你的回答!
你快到了。首先,看看你在结果行之前有什么。在该函数的每次调用中,该代码都会导致'k'为'1'。你将'k'设置为0,然后检查它是否等于零(它是哪个),然后将它增加1,这会得到k = 1。请记住,每个呼叫都会创建一个* k新的*值,您不会将它们存储在两次呼叫之间。这就是为什么当你返回k时,你总是会得到'1'。 – nograpes
@nograpes Thx为您的答案!但是,我真的不知道应该在哪里放置'k',以便它只被称为... – mrquad
诀窍是添加一些东西添加每个返回,您根本不需要'k'。这是一个很大的暗示。你绝对应该回顾一些递归的例子。 – nograpes