字典缓存与函数的互调

    xiaoxiao2022-07-05  159

    Add a new file inside the Hello directory named FibonacciGenerator.cs with the following code: C# = 复制 using System; using System.Collections.Generic; namespace Hello { public class FibonacciGenerator { private Dictionary<int, int> _cache = new Dictionary<int, int>(); private int Fib(int n) => n < 2 ? n : FibValue(n - 1) + FibValue(n - 2); private int FibValue(int n) { if (!_cache.ContainsKey(n)) { _cache.Add(n, Fib(n)); } return _cache[n]; } public IEnumerable<int> Generate(int n) { for (int i = 0; i < n; i++) { yield return FibValue(i); } } } } 2.Change the Main method in your Program.cs file to instantiate the new class and call its method as in the following example: C# = 复制 using System; namespace Hello { class Program { static void Main(string[] args) { var generator = new FibonacciGenerator(); foreach (var digit in generator.Generate(15)) { Console.WriteLine(digit); } } } }

     

    最新回复(0)