我正在研究Euler项目编号5.我没有使用Google搜索,因为这通常会导致SO得到答案.所以,这就是我所拥有的:
private int Euler5(int dividend, int divisor)
{
if (divisor < 21)
{
// if it equals zero, move to the next divisor
if (dividend % divisor == 0)
{
divisor++;
return Euler5(dividend, divisor);
}
else
{
dividend++;
return Euler5(dividend, 1); // move to the dividend
}
}
// oh hey, the divisor is above 20, so what's the dividend
return dividend;
}
Run Code Online (Sandbox Code Playgroud)
在我看来,这是有道理的.然而VS2012给了我一个StackOverFlowException,表明我确保我没有进入无限循环或使用递归.我的问题是,为什么这是一个无限循环?我有一种感觉,我错过了一些完全愚蠢的东西.
编辑
由于人们似乎一直在发帖,我会重申我没有使用谷歌这一事实,因为他害怕绊倒答案.我不想要问题的答案.我只想知道为什么我得到了例外.