Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- void popuniFakt(int*, int, int);
- int main()
- {
- int duzina;
- cout << "Unesite duzinu niza : ";
- cin >> duzina;
- int* p_niz = new int[duzina];
- popuniFakt(p_niz, duzina, 0);
- for (int i = 0; i < duzina; i++)
- {
- cout << "NIZ[" << i + 1 << "] : " << *(p_niz + i) << endl;
- }
- system("pause");
- return 0;
- }
- void popuniFakt(int* p_niz, int duzina, int indeks)
- {
- if (indeks == duzina) // bazni slucaj
- return;
- else if (indeks == 0)
- *(p_niz + indeks) = 1; // ako je prvi clan niza dodjeli vrijednost 1
- else
- {
- *(p_niz + indeks) = *(p_niz + indeks - 1) * (indeks + 1); // primjer. 5! = 4! * 5 --- faktorijel od 4 je prosli clan a 5 je indeks + 1, tako dobijemo 5!
- if (*(p_niz + indeks) / *(p_niz + indeks - 1) != (indeks + 1)) // provjera za overflow -- isti primjer ko gore. 5! / 4! = 5, ako nije tako onda se desio overflow
- return;
- }
- popuniFakt(p_niz, duzina, indeks + 1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement