java 递归函数写的不对,请教了

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:37:42
package org.beenylee.demo;

public class Demo1 {
static int result = 0;

public static int getDegree(int n) {

if (n == 1) {
System.out.print(result);
} else {
if (n % 2 == 0) {
n = n % 2;
result = result + 1;
getDegree(n);
} else {
n = n - 1;
result = result + 1;
getDegree(n);
}
}
return result;
}

public static void main(String args[]) {
getDegree(7);
}
}

题目是:一个正整数N,偶数就除以2,奇数就减去1变成偶数再除以2,问需要通过几次运算才能把N变成1.我感觉我写的没有错误啊,请教各位了。

public class DiGui {
static int result = 0;

public static int getDegree(int n) {

if (n == 1) {
System.out.print(result);
} else {
if (n / 2 == 0) {
n = n / 2;
result = result + 1;
getDegree(n);
} else {
n = n + 1;
n = n / 2;
result = result + 1;
getDegree(n);
}
}
return result;
}

public static void main(String args[]) {
getDegree(5);
}
}