这里有一个案子。试图解决它,但不明白如何去做。
情况是:如果数能被2整除,则减半——否则,应乘以3,这个结果加1,这样一直持续到结果为1
我不明白如何在java中设置它。我尝试了 if、else if 和 else。但我不知道如何让它工作。
有小费吗?
这是伪代码..按照它应该可以工作。
while num > 1
if num mod 2 is 0
num/=2
else
num*=3
++num
我会在测试和除法步骤中使用按位运算,应该比数字除法和取模更快。
while (x != 1) {
x = (x & 1) != 0 ? x * 3 + 1 : x >> 1;
}
不确定您要做什么,但有一个提示:
x = (x % 2 == 0) ? (x / 2) : (x * 3 + 1)