Отредактировать код, вычисляющий числа Фибоначчи - C#

Узнай цену своей работы

Формулировка задачи:

Прошу ногами на пинать и тапками не кидать, в программировании очень слаб. Есть код:
namespace cs_4_1
{
    static class Math_
    {
        public static int Fibonachi(int n)
        {
            int a = 0;
            int b = 1;
            for (int i = 0; i < n; i++)
            {
                int temp = a;
                a = b;
                b = temp + a;
            }
            return a;
        }
    };

    class MyClass : IEnumerable
    {
        int n;
 
        public MyClass(int m)
        {
            n = m;
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return new MyClassEnum(n);
        }
    }
    class MyClassEnum : IEnumerator
    {
        int n;
        int idx = 0;
        int current = 0;
 
        public MyClassEnum(int m)
        {
            n = m;
        }
        public bool MoveNext()
        {
            if (idx == n)
                return false;
 
            idx++;
            current = Math_.Fibonachi(idx);
 
            return true;
        }
        public void Reset()
        {
            idx = 0;
        }
        public object Current
        {
            get
            {
                return current;
            }
        }
    }
 
    class MyClass0
    {
        int n;
        public MyClass0(int m)
        {
            n = m;
        }
        public IEnumerator GetEnumerator()
        {
            int a = 0;
            int b = 1;
            for (int i = 0; i < n; i++)
            {
                int temp = a;
                a = b;
                b = temp + b;
                yield  return a;
             }
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
 
            MyClass mc = new MyClass(10);
            foreach (var x in mc)
                Console.Write(x + " ");
 
            Console.WriteLine();
 
            MyClass0 mc0 = new MyClass0(10);
            foreach (var x in mc0)
                Console.Write(x + " ");
 
            Console.Read();
        }
    }
}
Проблема в том, что в Math числа фибоначчи каждый раз считаются заново. Подскажите как исправить плиз.

Решение задачи: «Отредактировать код, вычисляющий числа Фибоначчи»

textual
Листинг программы
var a = Fibonachi(10);
var b = Fibonachi(20);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы