【发布时间】:2013-10-16 19:02:21
【问题描述】:
我正在尝试实现一个函数,该函数返回一个自然数,该自然数是输入的自然数内的数字之和。我只是不断地陷入无限循环。我知道我必须返回递归调用,但我无法弄清楚。这是我目前所拥有的:
private static NaturalNumber sumOfDigits(NaturalNumber n) {
NaturalNumber zero = new NaturalNumber2(0);
if (n.compareTo(zero) == 0) {
return zero;
} else {
NaturalNumber z = new NaturalNumber2(n.divideBy10());
n.divideBy10();
z.add(sumOfDigits(n));
// return ___;
}
}
我应该返回什么?返回 z 不起作用
【问题讨论】:
-
你需要 NaturalNumber 类做什么?
-
我们今天只是像topsy一样递归,不是吗?我建议您查看过去 24 小时内开始讨论基本递归的 4-5 个其他线程之一——同样的原则也适用。
-
@Cruncher - 它让它变得更加复杂。
-
@HotLicks
divideBy10是我最喜欢的新方法 -
@HotLicks 我已经审查了它,我已经实现了这个返回和 int 而不是 NN 并且它可以工作。我只是想弄清楚如何返回
z.add(sumOfDigits(n));但它给了我一个 void 错误