Stackoverflow 异常 - 多重计算

Stackoverflow exception - multiple calculation

所以我正在解决 Project Euler 中的一个问题,我必须找到某个数字的最小倍数。

目前它是起始数字 10 的工作代码但是 当我输入 20 时,我得到一个 Whosebug 异常。我似乎无法弄清楚我做错了什么。

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;
    }
}

非常欢迎任何帮助。

我猜你会得到 Whosebug 异常,因为你正在递归调用你的函数。

重构您的代码以删除递归。