为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

隔江千里 2022-05-25 15:53:50
我认为标题本身几乎是不言自明的。例如,如果我输入 128,它应该打印 7。如果我输入一个奇数,它应该打印 0。我的代码是public static int divideBy2 (int number){       int count=0;      while (number%2==0){         count++;      }      return count;}我确实理解为什么它不起作用,但我想不出其他任何东西。我是初学者,我应该使用while循环。任何帮助,将不胜感激。(这不是重复的。那篇文章是关于 2 适合这个数字多少次,但我的问题是关于将数字重复除以 2。
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

如果是可整除的,你需要再除以二,你不觉得吗?


while (number%2==0) {

     number /=2;    

     count++;

}


查看完整回答
反对 回复 2022-05-25
?
烙印99

TA贡献1829条经验 获得超13个赞

正如所指出的,在测试数字是否可被 2 整除之后,您实际上必须进行除法。

警告!如果给定数字 0,你有一个无限循环!你应该防止这种情况。

有趣的事实:使用Integer.numberOfTrailingZeros(number)可以不用除法来解决问题。


查看完整回答
反对 回复 2022-05-25
  • 2 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号