<分区>
我的工作是为此方法编写一个递归版本。据我了解,递归是从一个基本调用开始(如果有则返回),然后是一个 else,它展开回原始基础。就像从一副牌开始,添加到牌组,然后从牌组中取出牌,直到你回到原来的牌组。 考虑到这一点,它就在这里。
public static long fact(int n)
{
long result = 1;
while(n > 0)
{
result = result * n;
n = n - 1;
}
return result;
}
//我的递归版本:
public static void recFact(int n)
{
if(n==0)
{
return n; // ir 0 it really doesn't matter right?
}
else
{
return recFact(n-1);
}
}
这只是我即将参加的考试的示例测试问题,只是想确保我掌握了递归。我这样做对吗?如果不是,我错过了什么?请不要回答问题,只是告诉我我做错了什么,也许还有一些更好的理解方法的建议。
谢谢。