Генерація рядків Фібоначчі#8295

Генерація рядків Фібоначчі (Розбір)

Реалізуємо рекурсивну функцію, яка генерує -й рядок Фібоначчі.

Реалізація алгоритму

Функція f повертає -й рядок Фібоначчі.

string f(int n)
{
  if (n == 0) return "a";
  if (n == 1) return "b";
  return f(n-1) + f(n-2);
}

Основна частина програми. Читаємо вхідне значення і виводимо -й рядок Фібоначчі.

cin >> n;
cout << f(n) << endl;

Реалізація алгоритму — без STL

Функція f повертає -й рядок Фібоначчі.

void f(int n)
{
  if (n == 0)
  {
    printf("a"); return;
  }
  if (n == 1)
  {
    printf("b"); return;
  }
  f(n-1);
  f(n-2);
}

Основна частина програми. Читаємо вхідне значення і виводимо -й рядок Фібоначчі.

scanf("%d",&n);
f(n); printf("\n");

Java реалізація

import java.util.*;

public class Main
{
  static String f(int n)
  {
    if (n == 0) return "a";
    if (n == 1) return "b";
    return f(n - 1) + f(n - 2);
  }
  
  public static void main(String[] args)
  {
    Scanner con = new Scanner(System.in);
    int n = con.nextInt();
    System.out.println(f(n));
    con.close();
  }
}

Python реалізація

Функція f повертає -й рядок Фібоначчі.

def f(n):
  if n == 0:
    return "a"
  elif n == 1:
    return "b"
  else:
    return f(n-1) + f(n-2)

Основна частина програми. Читаємо вхідне значення і виводимо -й рядок Фібоначчі.

n = int(input())
print(f(n))