【发布时间】:2022-11-13 12:49:16
【问题描述】:
我必须使用递归方法检查一个数字是否是 Armstrong 数字
public class ArmStrong {
public static void main(String[] args){
System.out.println(isArm(407,0,0));
}
static boolean isArm(int n,int last,int sum){
if(n <= 0 ){
if(sum == n){
return true;
}else{
return false;
}
}
return isArm(n/10,n%10,sum + last*last*last);
}
}
当我调试时,在isArm 的最后一次调用中,当n 为4 时,会跳过基本语句。
【问题讨论】:
-
你的问题是什么?
-
一个解决方案也许
-
... 什么是“基本声明”?对我来说,当
n是0时,它会输入if(...)。 -
@neo-code 问题是“也许是一个解决方案”?这不是问题。
-
对我来说,调试器跳过 if 语句并给出错误