Найти N-ный член ряда Фибоначчи на C#

В недавней статье мы разбирали код программы нахождения ряда Фибоначчи до определённого введённого пользователем числа. Теперь мы создадим программу, которая выведет нам только N-ный член ряда Фибоначчи на С#.

Как уже было сказано в предыдущей статье, ряд Фибоначчи – это такая числовая последовательность , в которой сумма двух предыдущих элементов будет составлять следующий элемент:

Найти N-ный член ряда Фибоначчи на C# - vscode.ru

Итак, сначала нам нужно получить номер элемента ряда Фибоначчи, которое захочет увидеть пользователь.

Выводим в консоль наш вопрос, затем введённое пользователем значение конвертируем из типа строки string в числовой тип int.

Теперь введём пару оговорок.

Int- 32-разрядный целочисленный тип данных, и диапазон его довольно велик, но не бесконечен (int может принимать 4 294 967 296 различных численных значений), он строго зафиксирован от -2 147 483 648 до 2 147 483 647. Ряд Фибоначчи же бесконечен, поэтому начиная с определенного, огромнейшего по своему значению, элемента ряда int не будет справляться, так как это число выйдет за пределы диапазона данного типа. Поэтому мы ограничим пользователя в том, чтобы он не смог зайти за пределы возможного значения. Максимальный элемент ряда, который мы сможем получить, не выходя за пределы – 48-ой по счёту со значением 512 559 680. Начиная с 49ого элемента, ряд выходит за пределы интевского диапазона. Поэтому мы введём оператор условия if:

Если веденное пользователем значение будет превышать 48, программа выведет в консоли следующее:

Найти N-ный член ряда Фибоначчи на C# - vscode.ru

Также мы наложим “запрет” на ввод чисел меньше единицы, так как номера элементов ряда не могут быть нулевыми или отрицательными.

Всего у нас в программе получается три условия: если номер введенного элемента больше 48, если элементы введенного элемента меньше единицы, и, собственно, элементы, входящие в промежуток между 1 и 48. В таких случаях используется следующая вариация оператора if-else:

If(условие 1)

{

выполнение действия 1;

}

else if (условие 2)

{

выполнение действия 2;

}

else

{

выполнение действия 3;

}

По такому принципу пишем второе условие:

В консоли выглядит так:Найти N-ный член ряда Фибоначчи на C# - vscode.ru

Теперь приступаем к самому вычислению нужного нам элемента внутри оставшегося оператора условия:

Первые два элемента всегда равны единице, в sum будем заносить результат сложения perv и vtor. Также вводим переменную j – переменная, которая будет считать элементы ряда, чтобы потом по ней определить нужный нам элемент. Счёт элементов начнётся с двух, так как первые две единицы – два первых элемента; у нас уже инициализированы вне цикла while и не будут посчитаны в нём.

В цикле мы ставим условие, при котором ряд считается до тех пор, пока переменная j не достигнет такого же значения, как данные, введённые пользователем( то есть, если пользователь ввёл в консоли, что хочет увидеть 10ый элемент ряда Фибоначчи, то цикл не закончится, пока j тоже не станет равной 10).

Затем мы находим последний элемент, складывая два предыдущих числа, первому элементу присваиваем значение второго, а значение второго к последнему, после чего увеличиваем j на единицу – всё это в купе означает, что мы нашли ещё один элемент последовательности.

Примечание: также можете посмотреть эту статью. Там также производится подробный разбор данного алгоритма.

Как только j становится по условию больше переменной number, цикл прекращается, оставляя нам считанное значение номера элемента, который нам надо будет вывести на консоль. Значение же этого элемента у нас сохраняется в переменной perv.

Теперь нам просто остаётся вывести полученное число на экран. Ну и не забываем про строку:

Она нужна для того, чтобы программа не закрывалась моментально, как только выполнится весь код.

Вот так выглядит результат:

Найти N-ный член ряда Фибоначчи на C# - vscode.ru

Исходный код программы, которая поможет найти N-ный член ряда Фибоначчи на C# можно скачать чуть ниже.

Скачать исходник

 

Найти N-ный член ряда Фибоначчи на C#
5 (100%) 2 votes

Поделиться в соц. сетях:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">