Отредактировать код, вычисляющий числа Фибоначчи - C#
Формулировка задачи:
Прошу ногами на пинать и тапками не кидать, в программировании очень слаб. Есть код:
Проблема в том, что в Math числа фибоначчи каждый раз считаются заново. Подскажите как исправить плиз.
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(); } } }
Решение задачи: «Отредактировать код, вычисляющий числа Фибоначчи»
textual
Листинг программы
var a = Fibonachi(10); var b = Fibonachi(20);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д