将代码python转换为Java,找到达到1的最小步骤数
在这个foobar编码问题中,您应该返回从给定字符串到数字1的最小步骤数。例如,对于参数“15”,该方法将返回4。使用参数4,该方法将返回2 我已经在python中找到了解决方案,并试图转换为Java,但是Java代码没有通过一半的秘密测试(我不知道测试用例是什么[enter image description here]),而python代码通过了测试。这是python代码:`将代码python转换为Java,找到达到1的最小步骤数,java,python,Java,Python,在这个foobar编码问题中,您应该返回从给定字符串到数字1的最小步骤数。例如,对于参数“15”,该方法将返回4。使用参数4,该方法将返回2 我已经在python中找到了解决方案,并试图转换为Java,但是Java代码没有通过一半的秘密测试(我不知道测试用例是什么[enter image description here]),而python代码通过了测试。这是python代码:` def solution(n): n=int(n) res = 0 while(n!=1)
def solution(n):
n=int(n)
res = 0
while(n!=1):
if(n%2==0):
n=n/2
elif((n==3) or ((n+1)&n) > ((n-1)&(n-2))):
n-=1
else:
n+=1
res+=1
return res
`代码传递就是这种情况。我的问题是试图找出我在Java代码中做错了什么。这是Java代码:
public static int solution(String x) {
int counter = 0;
int number = Integer.parseInt(x);
while(number != 1) {
if(number%2 == 0) {
number = number/2;
}
//else if(number == 3 || number%4 == 1) {
else if((number == 3) || ((number +1)&number) > ((number-1)&(number-2))) {
number-=1;
}
else {
number+=1;
}
counter+=1;
}
return counter;
}
`.请不要发布代码截图-通过选择、复制和粘贴整个块,然后重新选择块并在仍处于选中状态时按
{}
按钮,将代码包含在您的帖子中。抱歉,新的堆栈溢出用户!刚刚修复了它。在Python 3.x中,您应该使用/
进行除法以获得整数而不是浮点结果。当输入为“15”时,您的Python代码返回5作为输出,您能澄清是4还是5吗?请不要发布代码截图-通过选择、复制和粘贴整个块,将代码包含在您的帖子中,然后重新选择该块并在其仍处于选中状态时按{}
按钮。对不起,新的堆栈溢出用户!刚刚修复了它。在Python3.x中,您应该使用/
进行除法以获得整数而不是浮点结果。当输入为“15”时,您的Python代码返回5作为输出,您能澄清它是4还是5吗?