Rekurzivne funkcije

Napisati funkciju koja računa faktorijel broja.

#include <iostream>

using namespace std;

int faktorijel(int broj) {
    if (broj == 0)
        return 1;
    return broj * faktorijel(broj - 1);
}

int main() {
    int n;
    cout << "Unesite broj: ";
    cin >> n;
    
    cout << "Faktorijel od " << n << " je " << faktorijel(n) << endl;
    return 0;
}

Napisati funkciju uzima N kao argument i ispisuje Fibonačijev broj na poziciji N.

#include <iostream>

using namespace std;

int fibonacci(int n) {
    if (n <= 1)
        return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
}

int main() {
    int n;
    cout << "Unesite broj n: ";
    cin >> n;

    cout << "Prvih " << n << " Fibonacci brojeva: ";
    for (int i = 0; i < n; i++) {
        cout << fibonacci(i) << " ";
    }
    cout << endl;
    
    return 0;
}

Napisati funkiju koja računa stepen broja.

#include <iostream>

using namespace std;

int stepen(int baza, int eksponent) {
    if (eksponent == 0)
        return 1;
    return baza * stepen(baza, eksponent - 1);
}

int main() {
    int baza, eksponent;
    cout << "Unesite bazu i eksponent: ";
    cin >> baza >> eksponent;

    cout << baza << "^" << eksponent << " = " << stepen(baza, eksponent) << endl;

    return 0;
}

Program koji ispisuje prvih N fibonačijebih brojeva bez rekurzije.

#include <iostream>

using namespace std;

int main() {
    int n;
    cout << "Unesite broj n: ";
    cin >> n;
    
    if (n <= 0) {
        cout << "Molimo unesite pozitivan broj." << endl;
        return 1;
    }
    
    long long prvi = 0, drugi = 1, sledeci;
    
    cout << "Prvih " << n << " Fibonacci brojeva:" << endl;
    
    for (int i = 0; i < n; i++) {
        cout << prvi << " ";
        sledeci = prvi + drugi;
        prvi = drugi;
        drugi = sledeci;
    }
    cout << endl;
    
    return 0;
}

Program uzima broj N i racuna zbir brojeva od 1 do n.

#include <iostream>
using namespace std;


int zbir(int n) {
    if (n == 1) return 1;  // Osnovni slucaj
    return n + zbir(n - 1); // Rekurzivni slucaj
}

int main() {
    int n;
    cout << "Unesite broj n: ";
    cin >> n;

    if (n < 1) {
        cout << "Broj mora biti veci ili jednak 1!" << endl;
    } else {
        cout << "Zbir brojeva od 1 do " << n << " je: " << zbir(n) << endl;
    }

    return 0;
}