Я хочу рекурсивно сосчитать cylces журнала в моей функцииВычислить рекурсивно `журнал (журнал (журнал (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. Помните, что * new * значение 'k' создается при каждом вызове, вы не храните их между вызовами. Вот почему, когда вы возвращаете k, вы всегда будете получать '1'. – nograpes
@nograpes Thx для вашего ответа! Тем не менее, я не знаю, где положить 'k', чтобы его только однажды вызывали ... – mrquad
Трюк заключается в том, чтобы добавить что-то добавить каждый возврат, вам совсем не нужно' k'. Это большой намек. Вы должны обязательно рассмотреть некоторые примеры рекурсии. – nograpes