1
所以我正在從項目歐拉的問題,我必須找到一定數量的最小倍數。Stackoverflow異常 - 多次計算
目前它的起始編號爲10 ,但輸入20時出現,我得到一個stackoverflow異常。我似乎無法弄清楚我做錯了什麼。
public class MultipleCalculator
{
public static int StartingNumber { get; } = 0;
private int MultipleCypher = 20;
public bool MultipleFound = false;
public MultipleCalculator(int multipleCypher)
{
}
public int FindSmallestMultiple()
{
return FindMultiple(MultipleCypher);
}
private int FindMultiple(int startingNumberOfSequence)
{
while (!MultipleFound)
{
var isMultiple = IsMultiple(startingNumberOfSequence);
if (isMultiple)
{
MultipleFound = true;
return startingNumberOfSequence;
}
startingNumberOfSequence += MultipleCypher;
return FindMultiple(startingNumberOfSequence);
}
return -1;
}
private bool IsMultiple(int startingNumberOfSequence)
{
var dividableNumber = MultipleCypher - 1;
while (dividableNumber > 0)
{
if ((startingNumberOfSequence % dividableNumber) == 0)
dividableNumber--;
else
return false;
}
return true;
}
}
任何幫助都是值得歡迎的。
事實上,我可能已經省略了遞歸。遞歸的這種移除解決了這個問題。我不明白爲什麼我甚至沒有看到這一點,非常感謝!當我使用stackoverflow時,我會接受這個答案。 – Tikkes