Șirul lui Fibonacci

Aspecte teoretice:

Șirul lui Fibonacci este un șir de numere întregi a1, a2, a3, … definit în felul următor:
a1 = 1, a2 = 1, an = an-1 + an-2, pentru orice n≥3. O astfel de definiție, în care un anumit termen se construiește din termeni anterior determinați, se numește definiție recurentă (recursivă).
Pentru a determina al n-lea termen al șirului lui Fibonacci, va trebui să determinăm toți
termenii până la al n-1-lea inclusiv.

Implementare:

Visual_C++_Icon
Cod Sursa C++
#include "stdafx.h"
 
#include<iostream>
 
using namespace std;
 
int main()
{
	int a0 = 0, a1 = 1, a2, i, n;
	cout << "Numarul de elemente: "; cin >> n;
	cout << "Sirul: " << a0 << " " << a1 << " ";
	for (i = 0; i<n - 2; i++)
	{
		a2 = a1 + a0;
		cout << a2 << " ";
		a0 = a1;
		a1 = a2;
	}
	system("Pause");
}

Logo_C_Sharp
Cod Sursa C#

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace FibonacciCS
{
    class Program
    {
        static void Main(string[] args)
        {
            int a0 = 0;
            int a1 = 1;
            int a2, i, n;
            Console.WriteLine("Numarul de elemente: ");
            n = Convert.ToInt32(Console.ReadLine());
            Console.Write("Sirul: " + a0 + " " + a1 + " ");
            for (i=0; i<n-2; i++)
            {
                a2 = a1 + a0;
                Console.Write(a2 + " ");
                a0 = a1;
                a1 = a2;
            }
            Console.ReadKey();
 
        }
    }
}

Logo_VB
Cod Sursa VB
Module Module1
 
    Sub Main()
        Dim a0 As Integer = 0
        Dim a1 As Integer = 1
        Dim a2 As Integer
        Dim i, n As Integer
        Console.WriteLine("Numarul de elemente: ")
        n = Convert.ToInt32(Console.ReadLine())
        Console.Write("Sirul: " & a0 & " " & a1 & " ")
        For i = 0 To n - 2
            a2 = a1 + a0
            Console.Write(a2 & " ")
            a0 = a1
            a1 = a2
        Next
        Console.ReadKey()
    End Sub
 
End Module
Java-Logo
Cod Sursa JAVA

 

public class Fibonacci {
   public static int fib(int n) {
                 if (n < 2) {
                    return n;
                 }
                 else {
        return fib(n-1)+fib(n-2);
                 }
   }
    public static void main(String[] args) {
       for (int i=0; i<=46; i++)
           System.out.print(fib(i)+“, “);
   }
 }

 

Haskell Logo
Cod Sursa HASKELL

–Elementele sirului lui Fibonacci
fib :: Int -> Int
fib n
| n==O = 0
| n==l = 1
| n>l  = fib (n-2) + fib (n-1)
–observăm ca evaluarea functiei fib n creste rapid odata cu cresterea lui n
–se consuma multe resurse din partea masinii de calcul

LISP logo
Cod Sursa LISP

 

(defun fibonacci (N)
“Compute the N’th Fibonacci number.”
(if (or (zerop N) (= N 1))
1
(+ (fibonacci (- N 1)) (fibonacci (- N 2)))))

Rezultat:

fibonacci rezultat

 

Leave a comment