我试图使此递归函数成为一种封闭形式,但似乎无法使其正确。我确实知道基本情况应该为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;
}