Я пытаюсь сделать эту рекурсивную функцию замкнутой, но не могу понять, что это правильно.Я понял, что базовый случай должен быть 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;
}