public class L1_logN {
public static void main(String[] args) {
logN(5);
}
private static void logN(int n){
int count=0; // 循环次数
for(int i=1;i<=n;i*=2){
count++;
}
System.out.format("当n=%d时,循环了 %d 次\n",n,count);
}
}
**结果: **
当n=1时,循环了 1 次
当n=2时,循环了 2 次
当n=100时,循环了 7 次
问题:
当n=1时, log2(1)不是等于0吗?
当n=2时, log2(2)不是等于1吗?
为什么上面的结果却不符,还是理解有误?
所以你这里 i<=n 需要改为 i<n
建议加点log,这是个屡试不爽的好方法!
i<=n 改为 i<n