fork download
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Articulos.Cap04.Iteradores
  5. {
  6. public sealed class IteradorSerieFibonacci
  7. {
  8. public static void Main()
  9. {
  10. // El iterador se encarga de recorrer cada elemento
  11. // generado por el método `Fibonacci`:
  12. foreach (int fib in Fibonacci(7))
  13. {
  14. Console.Write ("{0} ", fib.ToString() );
  15. }
  16.  
  17. Console.WriteLine ();
  18. }
  19.  
  20. // Retorna elemento por elemento de la serie Fibonacci
  21. // hasta la cantidad especificada en el argumento:
  22. private static IEnumerable<int> Fibonacci(int numero)
  23. {
  24. // Por cada iteración retorna el valor de la serie actual,
  25. // realiza los cálculos necesarios para generar el siguiente
  26. // valor de la serie:
  27. for (int i = 0, fibAnterior = 1, fibActual = 1; i < numero; ++i)
  28. {
  29. // Retorna el valor actual de la serie Fibonacci:
  30. yield return fibAnterior;
  31.  
  32. int fibNuevo = fibAnterior + fibActual;
  33.  
  34. fibAnterior = fibActual;
  35. fibActual = fibNuevo;
  36. }
  37. }
  38. }
  39. }
Success #stdin #stdout 0.03s 33952KB
stdin
Standard input is empty
stdout
1 1 2 3 5 8 13