Что такое итеративная функция следующей рекурсивной функции - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь сделать эту рекурсивную функцию замкнутой, но не могу понять, что это правильно.Я понял, что базовый случай должен быть n> 1, но застрял после этого.Мне было интересно, если вы, ребята, могли бы помочь, пожалуйста.

public static int fi(int n){
    if(n <=1 ) {
        return 0;
    } else {
        return (int) (1 + Math.floor(n/2));
    }
}

Это то, что я имею до сих пор:

public static int fi(int n){
    int val = 0;
    while(n > 1){
        val +=  (int) Math.floor(n/2);
        n = (int) Math.floor(n/2);
    }
    return val;
}
...