Создать базовый класс для генерации последовательностей чисел и 3 дочерних: Фибоначчи, трибоначчи и Люка - C#
Формулировка задачи:
Ребята - программисты помогите пожалуйста. Нужно сделать программу, в которой будет базовый класс для генерации последовательностей чисел и 3 дочерних класса реализующих последовательности Фибоначчи, трибоначчи и Люка. Сама программа будет просить ввести количество чисел N, создавать по очереди все 3 класса, генерировать списки чисел и выводить их на экран.
Мой код:
П.С. Я только учусь программировать, критика принимается любая
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Math; using System.Object; using.System.Random; namespace Zadacha { public class Fibonachi { Random rand = new Random(); int N = Random.Next(0, 1000); public int N; Console.WriteLine("Vvedite N:" + N); long n; //Fibonachi = override.Fib; F0 = 0; F1 = 1; //for((Fibonachi = F(N - 1) + F(N - 2)); for(int i = 0; int < N;) } }
Решение задачи: «Создать базовый класс для генерации последовательностей чисел и 3 дочерних: Фибоначчи, трибоначчи и Люка»
textual
Листинг программы
abstract class NumberSequence : IEnumerable<int> { protected List<int> Cache; protected Func<int> SetNext; public int this[int n] { get { while (n >= Cache.Count) { SetNext(); } return Cache[n]; } } public IEnumerator<int> GetEnumerator() { foreach (var n in Cache) { yield return n; } while (true) { yield return SetNext(); } } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } class Fibonacci : NumberSequence { public Fibonacci() { Cache = new List<int> {0, 1}; SetNext = () => { int n = Cache.Count; var result = Cache[n - 1] + Cache[n - 2]; Cache.Add(result); return result; }; } } class Tribonacci : NumberSequence { public Tribonacci() { Cache = new List<int> { 0, 0, 1 }; SetNext = () => { int n = Cache.Count; var result = Cache[n - 1] + Cache[n - 2] + Cache[n - 3]; Cache.Add(result); return result; }; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д