Rekurzivne funkcije pozivaju same sebe.
#include <iostream>
int faktorijel(int n) {
if (n <= 1) {
return 1;
}
return n * faktorijel(n - 1);
}
int main() {
int broj = 4;
std::cout << "Faktorijel broja " << broj << " je " << faktorijel(broj) << std::endl;
return 0;
}
#include <iostream>
int zbirCifara(int n) {
if (n < 10) {
return n;
}
return (n % 10) + zbirCifara(n / 10);
}
int main() {
int broj = 456;
std::cout << "Zbir cifara broja " << broj << " je " << zbirCifara(broj) << std::endl;
return 0;
}
#include <iostream>
int fibonaci(int n) {
if (n <= 1) {
return n;
}
return fibonaci(n - 1) + fibonaci(n - 2);
}
int main() {
int n;
std::cout << "Unesite broj n: ";
std::cin >> n;
std::cout << n << ". Fibonacijev broj je: " << fibonaci(n) << std::endl;
return 0;
}
#include <iostream>
#include <vector>
bool pronadjiPut(int matrica[5][5], int x, int y, int ciljX, int ciljY) {
if (x < 0 || x >= 5 || y < 0 || y >= 5 || matrica[x][y] != 1) {
return false;
}
if (x == ciljX && y == ciljY) {
return true;
}
matrica[x][y] = 2;
if (pronadjiPut(matrica, x + 1, y, ciljX, ciljY) ||
pronadjiPut(matrica, x - 1, y, ciljX, ciljY) ||
pronadjiPut(matrica, x, y + 1, ciljX, ciljY) ||
pronadjiPut(matrica, x, y - 1, ciljX, ciljY)) {
return true;
}
return false;
}
int main() {
int matrica[5][5];
int startX, startY, ciljX, ciljY;
std::cout << "Unesite elemente matrice 5x5 (0 ili 1):" << std::endl;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
std::cin >> matrica[i][j];
}
}
std::cout << "Unesite pocetne koordinate (i j): ";
std::cin >> startX >> startY;
std::cout << "Unesite ciljne koordinate (i j): ";
std::cin >> ciljX >> ciljY;
if (pronadjiPut(matrica, startX, startY, ciljX, ciljY)) {
std::cout << "Put postoji!" << std::endl;
} else {
std::cout << "Put ne postoji." << std::endl;
}
return 0;
}