1
私は特定の数の最小の倍数を見つけなければならないProject Eulerの問題に取り組んでいます。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