2011-07-13 91 views
0

我正在通过自己的Java课程工作,但我没有任何问题的答案。基于Karel ++的第一单元的这个问题使我难住了。在一堆“蜂鸣器”上有一个机器人物体,它需要确定堆中有多少物并返回该值。我需要将下面的迭代方法转换为递归方法。如何将迭代方法转换为递归方法(Java)

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

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

回答

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

我想我不会担心使它太容易... –

+0

提示!=解决方案 – hoipolloi

6

考虑,将采取的计数作为参数,然后,如果到下一个蜂鸣器,增加了计数,并与新的计数调用本身的功能。如果它不在蜂鸣器旁边,就完成了。无论哪种情况,它都应该返回当前计数。我可能会让这个过于简单 - 不确定!

+0

+1在其他答案:)评论。不要给鱼,教如何... – woliveirajr

+0

+1提供有用的提示 – hoipolloi