我认为标题本身很容易解释。
例如,如果我输入128,则应打印7。
如果我输入一个奇数,它应该显示0。
我的代码是
public static int divideBy2 (int number){
int count=0;
while (number%2==0){
count++;
}
return count;
}
我确实知道为什么它不起作用,但我想不出其他任何东西。
我是一个初学者,应该使用while循环。
任何帮助将不胜感激。
(这不是重复项。该帖子是2适合数字多少倍,但是我的问题是将数字重复除以2。)
答案 0 :(得分:6)
如果是可分的,您需要再将其除以二,您认为吗?
while (number%2==0) {
number /=2;
count++;
}
答案 1 :(得分:1)
如前所述,在测试数字是否可以被二整除之后,您实际上必须进行除法。
警告!如果给定数字0,那么您将陷入无限循环!您应该防止这种情况。
有趣的事实:使用Integer.numberOfTrailingZeros(number),可以不需解决就解决问题。