我一直在尝试根据n导出表达式。我得到的结果中最接近的是log_2(n)(基数2)。谢谢:)
public static int v(int n) {
int r = 0;
for(int i=1;i<n;i*=2) {
r=r+1;
}
return r;
}
答案 0 :(得分:0)
这对您足够好了吗
public static int v2(int n) {
if(n <= 1)
return 0;
return (int) (Math.log(n - 1) / Math.log(2)) + 1;
}
换句话说,log_2(n-1)+1
代表n > 1
,否则0
。