fork download
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Articulos.Cap04.Secuencias
  5. {
  6. public sealed class FibonacciPares
  7. {
  8. public static void Main()
  9. {
  10. foreach (long fibonacci in GeneradorNumeroPares (GeneradorFibonacci(6)))
  11. {
  12. Console.WriteLine (fibonacci);
  13. }
  14. }
  15.  
  16. // Retorna elemento por elemento de la serie Fibonacci
  17. // hasta la cantidad especificada en el argumento:
  18. private static IEnumerable<long> GeneradorFibonacci(long cantidadSerie)
  19. {
  20. // Por cada iteración retorna el valor de la serie actual,
  21. // realiza los cálculos necesarios para generar el siguiente
  22. // valor de la serie:
  23. for (int i = 0, fibAnterior = 1, fibActual = 1; i < cantidadSerie; ++i)
  24. {
  25. // Retorna el valor actual de la serie Fibonacci:
  26. yield return fibAnterior;
  27.  
  28. int fibNuevo = fibAnterior + fibActual;
  29.  
  30. fibAnterior = fibActual;
  31. fibActual = fibNuevo;
  32. }
  33. }
  34.  
  35. // Método que comprueba si los números generados por la serie
  36. // Fibonacci son pares:
  37. private static IEnumerable<long> GeneradorNumeroPares(IEnumerable<long> fibonaccis)
  38. {
  39. foreach (long fibonacci in fibonaccis)
  40. {
  41. if ((fibonacci % 2) == 0)
  42. {
  43. yield return fibonacci;
  44. }
  45. }
  46. }
  47. }
  48. }
Success #stdin #stdout 0.04s 33912KB
stdin
Standard input is empty
stdout
2
8