Belirli bir sayının en küçük katını bulmak zorunda olduğum Project Euler'ın bir sorunu üzerinde çalışıyorum.Stackoverflow istisnası - çoklu hesaplama
Şu anda 20 0 girdiğimde, 10 ancak numaralı bir başlangıç kodu için kod çalışıyor, stackoverflow istisnası alıyorum. Ne yaptığımı anlayamıyorum yanlış yapıyorum.
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;
}
}
Herhangi bir yardım, memnuniyetle karşılanır.
Gerçekten de, özyineyi ihmal edebilirdim. Bu özyinelemenin ortadan kaldırılması sorunu çözdü. Bunu neden görmediğimi anlamıyorum, çok teşekkürler! Stackoverflow bana izin verdiğinde bu cevabı kabul edeceğim. – Tikkes