Witam, mam za zadanie napisać 2 funkcje rekurencyjne zamieniające kolejne elementy tablicy w jedna liczbę, na zasadzie 1 2 3 4 daje liczbę całkowitą 1234. O ile z pierwszą funkcją sobie jakoś poradziłem, o tyle druga funkcja mająca za zadanie zrobienie tego samego w odwrotnej kolejności (1 2 3 4 daje liczę 4321) przyprawia mnie o ból głowy. Kompletnie nie mogę sobie z tym poradzić i nie rozumiem otrzymywanych wyników. Proszę o podpowiedź co należało by zmienić. Pozdrawiam.
#include <iostream> #include <cmath> using namespace std; long REK1 (int krok, int tab[]) { if (krok==0) { return 0; } krok--; return tab[krok]*pow(10, krok)+REK1 (krok, tab);//tab[krok-1]*pow(10, krok-1)+REK1(krok-1, tab); } long REK2 (int krok, int tab[], int k) { if (krok==0) { return tab[krok]; } krok--; return tab[krok]*pow(10, k)+REK2 (krok, tab, ++k); } int main() { int tab[9]={9,8,7,6,5,4,3,2,1}; int krok=9; int k=0; cout<<REK1 (krok, tab)<<endl<<endl; cout<<REK2 (krok, tab, k)<<endl<<endl; return 0; }