编写一个接受整数参数的方法,该参数返回该数字除以2的次数

我认为标题本身几乎是不言自明的。


例如,如果我输入 128,它应该打印 7。


如果我输入一个奇数,它应该打印 0。


我的代码是


public static int divideBy2 (int number){ 


      int count=0;


      while (number%2==0){



         count++;

      }

      return count;

}

我确实理解为什么它不起作用,但我想不出其他任何东西。


我是初学者,我应该使用while循环。


任何帮助,将不胜感激。


(这不是重复的。那篇文章是关于 2 适合这个数字多少次,但我的问题是关于将数字重复除以 2。


隔江千里
浏览 114回答 2
2回答

慕标5832272

如果是可整除的,你需要再除以二,你不觉得吗?while (number%2==0) {     number /=2;         count++;}

烙印99

正如所指出的,在测试数字是否可被 2 整除之后,您实际上必须进行除法。警告!如果给定数字 0,你有一个无限循环!你应该防止这种情况。有趣的事实:使用Integer.numberOfTrailingZeros(number)可以不用除法来解决问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java