我正在自己完成Java课程,但我没有任何问题的答案。基于Karel ++的第一单元的这个问题困扰了我。在一堆“蜂鸣器”上有一个机器人对象,它需要确定堆中有多少并返回该值。我需要将以下迭代方法转换为递归方法。
public int numOfBeepersInPile()
{
int count = 0;
while(nextToABeeper())
{
pickBeeper();
count++;
}
return count;
}
任何人都可以给我一个提示吗?
答案 0 :(得分:6)
考虑一个将计数作为参数的函数,然后,如果它在蜂鸣器旁边,则增加计数并使用新计数调用自身。如果它不在蜂鸣器旁边,那就完成了。在任何一种情况下,它都应该返回当前计数。我可能会让这太容易了 - 不确定!
答案 1 :(得分:0)
public int numOfBeepersInPile()
{
if (nextToBeeper())
{
pickBeeper();
return 1 + numOfBeepersInPile();
}
return 0;
}