如何将迭代方法转换为递归方法(Java)

时间:2011-07-13 23:04:25

标签: java recursion karel

我正在自己完成Java课程,但我没有任何问题的答案。基于Karel ++的第一单元的这个问题困扰了我。在一堆“蜂鸣器”上有一个机器人对象,它需要确定堆中有多少并返回该值。我需要将以下迭代方法转换为递归方法。

public int numOfBeepersInPile()
{
    int count = 0;
    while(nextToABeeper())
    {
        pickBeeper();
        count++;
    }
    return count;
}

任何人都可以给我一个提示吗?

2 个答案:

答案 0 :(得分:6)

考虑一个将计数作为参数的函数,然后,如果它在蜂鸣器旁边,则增加计数并使用新计数调用自身。如果它不在蜂鸣器旁边,那就完成了。在任何一种情况下,它都应该返回当前计数。我可能会让这太容易了 - 不确定!

答案 1 :(得分:0)

 public int numOfBeepersInPile()
 {
     if (nextToBeeper())
     {
        pickBeeper();
        return 1 + numOfBeepersInPile();
     }
     return 0;
 }