#include <iostream>
using namespace std;
int n_iter(int n) {
int wynik = 0;
for (int i = 1; i < n; i++) {
wynik = (2 * wynik) + 3;
}
return wynik;
}
int n_rek(int n) {
if (n == 1) return 0;
return 2 * n_rek(n - 1) + 3;
}
int main() {
int nr, n;
cout << "Wybierz metodę (1 - iteracja, 2 - rekurencja): "<<endl;
cin >> nr;
cout << "Podaj długość n: "<<endl;
cin >> n;
if (nr == 1) {
cout << "Wynik (iteracja): " << n_iter(n) << endl;
} else if (nr == 2) {
cout << "Wynik (rekurencja): " << n_rek(n) << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCmludCBuX2l0ZXIoaW50IG4pIHsKICAgIGludCB3eW5payA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgeyAgCiAgICAgICAgd3luaWsgPSAoMiAqIHd5bmlrKSArIDM7CiAgICB9CiAgICByZXR1cm4gd3luaWs7Cn0KCgppbnQgbl9yZWsoaW50IG4pIHsKICAgIGlmIChuID09IDEpIHJldHVybiAwOwogICAgcmV0dXJuIDIgKiBuX3JlayhuIC0gMSkgKyAzOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBuciwgbjsKCiAgICBjb3V0IDw8ICJXeWJpZXJ6IG1ldG9kxJkgKDEgLSBpdGVyYWNqYSwgMiAtIHJla3VyZW5jamEpOiAiPDxlbmRsOwogICAgY2luID4+IG5yOwoKICAgIGNvdXQgPDwgIlBvZGFqIGTFgnVnb8WbxIcgbjogIjw8ZW5kbDsKICAgIGNpbiA+PiBuOwoKICAgIGlmIChuciA9PSAxKSB7CiAgICAgICAgY291dCA8PCAiV3luaWsgKGl0ZXJhY2phKTogIiA8PCBuX2l0ZXIobikgPDwgZW5kbDsgIAogICAgfSBlbHNlIGlmIChuciA9PSAyKSB7CiAgICAgICAgY291dCA8PCAiV3luaWsgKHJla3VyZW5jamEpOiAiIDw8IG5fcmVrKG4pIDw8IGVuZGw7ICAKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=