Как реализовать ряды Фибоначчи на разных языках

Добро пожаловать в очередной блог. Сегодня мы расскажем, как создавать ряды Фибоначчи с помощью рекурсии на четырех языках — C, C#, Java и Python. Прежде чем мы углубимся непосредственно в реализацию, важно понять, что такое ряд Фибоначчи. Ряд Фибоначчи — это числовой ряд, в котором следующее число получается путем сложения двух предыдущих чисел. Начало ряда выглядит следующим образом: 1, 1, 2, 3, 5, 8 и так далее. Кроме того, я не должен упустить этот момент. Создание ряда Фибоначчи — любимый вопрос интервью многих технологических компаний. И мы не хотим, чтобы вы выдохлись в этот момент, поэтому мы решили осветить эту тему. Так что, когда этот вопрос возникнет, у вас может быть четыре разных языковых реализации, чтобы произвести впечатление на интервьюеров. Мы получили вашу спину на это!

Введение

Во-первых, давайте разберемся, что такое рекурсия?

Рекурсия

Как следует из названия, рекурсия — это процесс воспроизведения чисел. В рекурсии функция вызывает себя внутри своей собственной функции до тех пор, пока не будет выполнено условие. Объявленная таким образом функция называется рекурсивной функцией. Программисты должны быть бдительными при использовании рекурсии для решения проблемы. Определение правильного условия выхода необходимо для правильной работы всего кода. В противном случае мы навсегда войдем в бесконечный цикл. Говоря о бесконечных циклах, простой бесконечный цикл — это цикл while (true) в python. Рекурсивные функции используются для решения различных задач, особенно математических. Например, генерация факториала числа или построение ряда Фибоначчи.

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

Простой поток всего процесса рекурсии будет следующим:

Код

void recursion()
{
    recursion();
}

int main()
{
    recursion();
}

Реализация рекурсии

Теперь давайте перейдем непосредственно к кодированию. В следующих строках мы расскажем, как можно выполнить рекурсию с использованием четырех языков. Начнем с С.

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

Код

#include ‹stdio.h›

int FibonacciSeries(int x) {

if(x == 0)
{
вернуть 0;
}

if(x == 1)
{
вернуть 1 ;
}
return Ряд Фибоначчи(x-1) + Ряд Фибоначчи(x-2);
}

интервал main()
{

int x;

for (x = 0; x ‹ 10; x++)

{
printf(FibonacciSeries(x));
}

return 0;
}

Логика

Функция FibonacciSeries, которая имеет тип данных int (возвращает целочисленный вывод), возвращает 1, если вход функции равен 1. Она возвращает 0, если вход функции равен 0, а затем возвращает сумму ввода-1 и ввода-2 в все остальные случаи. Основная функция запускает цикл for для 10 чисел ряда Фибоначчи и печатает их. Код при запуске возвращает следующий вывод:

0	
1	
1	
2	
3	
5	
8	
13	
21	
34

Ряд Фибоначчи с использованием рекурсии на языке C#

Код

using System;
пространство имен LogicalPrograms
{
общедоступный класс Program
{
static void Main(string[] args)
{
Console. Write("Пожалуйста, введите длину ряда Фибоначчи, который вы хотите напечатать: ");
int number = int.Parse(Console.ReadLine());
FibonacciSeries(0, 1, 1 , номер);

Console.ReadKey();
}

public static void Fibonacci(int FirstNumber, int SecondNumber, int counter, int number)
{
Console.Write(FirstNumber + " ");
if (counter ‹ number)
{
Фибоначчи (второе число, первое число + второе число, счетчик + 1, число);
}
}
}
}

Логика

Общая логика остается такой же и в этом языке. Логика не зависит от языка, на котором мы пишем код, просто говоря. Здесь функция Фибоначчи проверяет, не пересекла ли переменная counter числовую переменную. до тех пор он производит сумму двух предыдущих чисел. В случае, если переменная-счетчик превышает переменную-число, цикл прерывается и программа останавливается. Входные данные для функций Фибоначчи установлены таким образом, что они производят числа Фибоначчи для желаемой длины ряда Фибоначчи.

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

Код

public class Fibonacci
{
public static int FibonacciRecursion(int n){
if(n == 0)
{
return 0;
}< br /> if(n == 1 || n == 2)
{
return 1;
}
return FibonacciRecursion(n-2) + FibonacciRecursion(n-1 );
}
public static void main(String args[]) {
int counter = 10;
System.out.print("Серия Фибоначчи "+ counter +" числа: ");
for(int i = 0; i ‹ counter; i++){
System.out.print(FibonacciRecursion(i) +" ");
}

}

Логика

Код на Java довольно прост и прост в реализации. Как и в предыдущих кодах, мы проверяем, являются ли входные данные функции Фибоначчи 0 или 1. Если это 0, мы возвращаем 0. Если это 1 или 2, мы возвращаем выходные данные как 1. Во всех остальных случаях функция производит сумму двух предыдущих чисел. И код продолжается до тех пор, пока счетчик не станет меньше числовой переменной. К настоящему времени вы, должно быть, заметили несколько общих шаблонов во всех кодах. Во-первых, мы всегда проверяем ввод функции. Если это 0 или 1, мы возвращаем необходимые целочисленные значения. Во всех остальных случаях мы производим числа Фибоначчи до тех пор, пока не будет выполнено условие остановки. важно помнить о потоке реализации. Кроме того, вы, должно быть, заметили, что рекурсия уменьшает количество строк, необходимых для написания кода. Если бы мы не использовали рекурсию, код увеличился бы еще на несколько строк. Это дополнительное преимущество, предоставляемое рекурсией. На данный момент мы рассмотрели 3 языка для реализации ряда Фибоначчи. Посмотрим на последний. То есть с использованием Python.

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

def Fibonacci(n):
if n‹=1:
return n
else:
return(Fibonacci(n-1) + Fibonacci(n-2))

n = int(input('Пожалуйста, введите число больше 2:'))

fib_series = []

для i в диапазоне (0,n):
fib_series.append(Fibonacci(i))

print(fib_series)

Реализация довольно проста. Логика остается такой же, как и в трех предыдущих реализациях.

Если вы зашли так далеко, вы проделали большую работу. Теперь вы можете продолжить и использовать редактор кода по вашему выбору, чтобы фактически запустить код и протестировать вывод на выбранном вами языке. Помните, что не ограничивайте использование рекурсии только созданием рядов Фибоначчи. Будет много случаев, когда вы захотите заменить длинный итеративный метод рекурсией. Если в ближайшем будущем вы узнаете об обходах деревьев, вы заметите еще одно применение рекурсии.

Надеюсь, вы нашли эту статью увлекательной. Увидимся в другом!