找到NaturalNumber n的最小数字

时间:2016-05-01 21:45:40

标签: java recursion

当我调用此方法时,我正试图找到自然数的最小数字。我必须使用递归。我哪里错了? (我也想使用我的通用代码结构)

private static int minDigit(NaturalNumber n) {
    int min = 9;
    if (!n.isZero()) {
        int k = n.divideBy10();
        k = minDigit(n);
        if (k < min) {
            min = k;
        }
    }
    return min;
}

1 个答案:

答案 0 :(得分:0)

为了使递归起作用,需要在较小版本的问题上进行递归调用,以便最终它变得如此之小以至于答案是显而易见的。但是你的代码使用相同的数字n进行递归调用,调用它,因此从不对该状态进行任何进展。

此外,如果n 为零,那么最小数字 0是否应该<?如果n永远不能为0,那你为什么要测试呢?