gpt4 book ai didi

java - Java 中的偶数

转载 作者:行者123 更新时间:2023-12-01 20:04:07 27 4
gpt4 key购买 nike

编写一个方法evenDigits,它接受整数参数n,并返回从n 中删除奇数位后形成的整数。下表显示了几个调用及其预期返回值:如果将除 0 之外的偶数位的负数传递给该方法,则结果也应该为负数,如上所示,当传递 -34512 时。结果中的前导零应被忽略,如果数字中没有除 0 之外的偶数位,则该方法应返回 0,如最后三个输出所示。调用示例:evenDigits(8342116) 返回值:8426EvenDigits(35179) 返回值:0EvenDigits(-163505) 返回值:-60

public int evenDigits(int n){
int result = 0;
int a = n%10;
if(n==0){
return 0;
}
if(a%2==0){
result = a + 10*evenDigits(n/10);
} else {
result = evenDigits(n/10);
}
return result;
}

我想出了解决方案,但如果我删除开头的 this if 语句,就会出现数字格式错误异常

if(n==0){
return 0;
}

有人可以解释一下 if 语句的目的是什么吗,我对此感到困惑。那到底是在做什么?预先非常感谢。

最佳答案

if (n == 0) 阻止否则无限递归:注意在所有其他情况下,evenDigits 是如何再次被调用的.

一旦n为零,工作就完成了,所有调用堆栈都可以展开。使用您最喜欢的调试器亲自查看。

关于java - Java 中的偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47649219/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com