Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将代码python转换为Java,找到达到1的最小步骤数_Java_Python - Fatal编程技术网

将代码python转换为Java,找到达到1的最小步骤数

将代码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)

在这个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):
        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吗?