rekurencja.cpp
//https://forum.pasja-informatyki.pl/399943/pomoglby-ktos-z-takim-zadaniem-z-rekurencji-naprawde-juz-nie-mam-pomyslu
#include <iostream>
#include <vector>
#include <cstdlib>
#include <stdio.h>
using namespace std;
void generate(vector<char> *v, int alphabetIndex, int reqiredLength){
for(vector<char>::const_iterator i = v->begin(); i != v->end(); ++i){
printf("%c", *i);
}
printf("\n");
if(alphabetIndex + 'a' > 'z'){
alphabetIndex = 0;
}
char tmp = v->at(0);
v->at(0) =v->at(v->size()-1);
v->at(v->size()-1) = tmp;
v->push_back(alphabetIndex + 'a');
if(v->size() < reqiredLength){
generate(v, alphabetIndex+1, reqiredLength);
}
}
int main(int argc, char *argv[]){
int reqiredLength = atoi(argv[1]);
if(reqiredLength <= 0){
printf("Podaj liczbę naturalną dodatnią.");
return 0;
}
vector<char> *v = new vector<char>();
v->push_back('a');
generate(v, 1, reqiredLength);
return 0;
}
kompilacja: g++ rekurencja.cpp -o rekurencja
przykładowe wykonanie: ./rekurencja 10 > wynik