Создать базовый класс для генерации последовательностей чисел и 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;
};
}
}