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

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


1개의 좋아요

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

저의 풀이입니다.

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개의 좋아요