Ряд Фибоначчи, уменьшение кода и перенес переменных в условие

203
07 марта 2022, 14:30

Всем Привет!

Подскажите пожалуйста как компактно переписать код который по индексу выводи число Фиббоначчи.

Вопрос в следующем переменные previousFibonacciNumber, currentFibonacciNumber объявлены рано, т.к. не используются в первом if. Если сработает первый if, эти переменные окажутся не нужны. Поэтому нужно объявить их в той ветке, где они используются. Подскажите пожалуйста как это можно компактно переделать?

        Console.Write("Введите целое число для вычисления числа Фибоначчи с этим индексом (индекс ряда начинается с 0) = ");
        int index = Convert.ToInt32(Console.ReadLine());
        int previousFibonacciNumber = 0;
        int currentFibonacciNumber = 1;
        if (index == 0 || index == 1)
        {
            currentFibonacciNumber = index;
        }
        else 
        {
            int i = 1;
            while (i < index)
            {
                int penultimateFibonacciNumber = previousFibonacciNumber;
                previousFibonacciNumber = currentFibonacciNumber;
                currentFibonacciNumber += penultimateFibonacciNumber;
                i++;
            }
        }
        Console.WriteLine(Environment.NewLine + "Число Фибоначчи с индексом {0} = {1}", index, currentFibonacciNumber);
Answer 1
    int currentFibonacciNumber = 1;
    if (index == 0 || index == 1)
    {
        currentFibonacciNumber = index;
    }
    else 
    {
        int previousFibonacciNumber = 0;
        int i = 1;
        while (i < index)
        {
            int penultimateFibonacciNumber = previousFibonacciNumber;
            previousFibonacciNumber = currentFibonacciNumber;
            currentFibonacciNumber += penultimateFibonacciNumber;
            i++;
        }
    }
READ ALSO
Двухсторонняя сортировка выбором Double selection sort

Двухсторонняя сортировка выбором Double selection sort

У кого либо может быть есть работающий код на C# (простыми конструкциями сделанный) с двухсторонней сортировкой выбором (Double selection sort)? Можете...

78
Ошибки при размещении сайта asp.net framework на iis

Ошибки при размещении сайта asp.net framework на iis

Я создал простой сайт на aspnet framework, в котором есть стандартная проверка подлинности пользователей, то есть регистрация, но я добавил в нее...

135
C# очищение поверхности Win Forms

C# очищение поверхности Win Forms

В главной форме проинициализирована переменная отвечающая за графику g = thisCreateGraphics()

82
Работа с object

Работа с object

У меня есть переменная типа object и с ней производиться математическая операцияВопрос, как использовать эту переменную как тип, который в ней...

78