Kotlin, C# 및 F#을 사용한 피보나치 수열 | ABUHAKMEH

ABUHAKMEH님은 커뮤니티의 힘을 믿습니다. 본인의 코드에서 다양한 피보나치 수열을 얻는 커뮤니티 코드를 제시합니다.


1 Like

피보나치의 자릿수는 결정되면 변하지 않으므로 위의 풀이는 저는 마음에 들지 않습니다.

저의 풀이입니다.

var series = Fibonacci.AsSequences().Take(10);
Console.WriteLine(string.Join(",", series));

series = Fibonacci.AsSequences().Take(10);
Console.WriteLine(string.Join(",", series));

static class Fibonacci
{
    private static readonly IList<int> _fibonacciSequences = new List<int> { 0, 1 };

    public static int Get(int index)
    {
        // 캐시되어 있으면 바로 값을 반환
        if (index < _fibonacciSequences.Count)
            return _fibonacciSequences[index];

        var result = Get(index - 2) + Get(index - 1);
        // 캐시함
        _fibonacciSequences.Add(result);

        return result;
    }

    public static IEnumerable<int> AsSequences()
    {
        var i = 0;
        while (true)
        {
            yield return Get(i);
            i++;
        }
    }
}
2 Likes