Предоставляем исходный код программы по нахождению чисел Фибоначчи на языке С# и его разбор. Пользователь здесь будет выбирать до какого числа он хочет видеть ряд. Программа будет осуществлена в консоли.
Сначала надо понять, что же такое числа Фибоначчи. Это бесконечная числовая последовательность, где каждое следующее число является суммой двух предыдущих.
Выглядит ряд Фибоначчи вот так:
Как видно из картинки, ряд начинается с двух единиц, затем они складываются — получается двойка, потом двойка вкладывается со второй единицей — получается тройка, тройка складывается с двойкой и т.д.
Теперь перенесём наши знания в код.
1 2 |
Console.WriteLine("До какого числа считать ряд Фибоначчи?"); int number = Convert.ToInt32(Console.ReadLine()); |
Мы выводим на экран консоли вопрос пользователю, а затем считываем и конвертируем в числовой формат (так как любые данные, записанные в консоли представляют собой формат строки) то, что он нам написал.
Теперь мы введём первые две единицы, а от них уже будем считать ряд дальше. С них начинается ряд Фибоначчи, поэтому они всегда будут и в начале ряда на консоли, так сказать, своеобразные константы.
1 2 3 4 5 |
int perv = 1; Console.Write("{0} ", perv); int vtor = 1; Console.Write("{0} ", vtor); int sum = 0; |
Кусочек кода из метода Console («{0} «, perv); в C# работает подобно %d, %f или %s в языке С. То есть мы в кавычках можем писать {0}, {1}, {2}, а после кавычек через запятую объявлять по порядку переменные, которые встанут вместо фигурных скобок по порядку.
В переменную sum мы будем записывать сумму двух чисел, предшествующих искомому.
Затем создаём цикл while и само условие составления ряда:
1 2 3 4 5 6 7 8 9 |
while (number >= sum) { sum = perv + vtor; Console.Write("{0} ", sum); perv = vtor; vtor = sum; } |
Условие работает до тех пор, пока введённое число больше, чем сумма двух последних чисел. При этом мы находим новую сумму (для первой итерации это будет 1+1=2), потом записываем эту сумму в консоль. Получается последнее число ряда (для первой итерации- 1 1 2). Затем мы присваиваем предпредыдущему значению переменной предыдущее (в первой итерации присваиваем переменной perv вторую единицу), а предыдущему числу присваиваем последнее(в первой итерации vtor станет равной 2).
И так далее, пока цикл не закончится.
Наша программа готова. Консоль выглядит вот так:
Исходный код программы лежит ниже:
Скачать исходник
Поделиться в соц. сетях: