这是我第一次尝试递归,很抱歉愚蠢.我试图通过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)
你的递归永远不会结束.尝试使用添加的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.
| 归档时间: |
|
| 查看次数: |
1232 次 |
| 最近记录: |