我的递归代码在Java中计算数字根有什么问题?我该如何解决?

1 java recursion

这是我第一次尝试递归,很抱歉愚蠢.我试图通过Java计算数字的数字根.我检查过我们可以通过除以9来计算它,但我仍然想使用递归.你能告诉我我在Java中的递归代码有什么问题吗?我该如何解决?你能为我提供示例代码吗?

public static void main(String[] args) {
    Scanner console = new Scanner(System.in);
    int inputnumber = inputnumber(console); 
    int sumofdigit = sumofdigit(inputnumber);
    int digitalroot = digitalroot(inputnumber);
    System.out.println("That number is :" + digitalroot);
}

//input console
public static int inputnumber(Scanner console){
    System.out.println("Please input: ");
    int num = console.nextInt();
    return num;}

public static int digitalroot(int inputnumber ) {
    if(inputnumber<10){
        return inputnumber;
    } else {
        return digitalroot(sumofdigit(inputnumber));
    }
}

// calculate sum of digits
public static int sumofdigit(int inputnumber){
    return sumofdigit(inputnumber/10) + inputnumber%10; 
}
Run Code Online (Sandbox Code Playgroud)

Rai*_*rze 5

你的递归永远不会结束.尝试使用添加的if声明:

public static int sumofdigit(int inputnumber) {
    if (inputnumber<10)
        return inputnumber;
    return sumofdigit(inputnumber/10) + inputnumber%10; 
}
Run Code Online (Sandbox Code Playgroud)

你有一个simlar片段digitalroot,但你主要需要它sumofdigit.