You are on page 1of 2

#include <iostream>

using namespace std;


long int liczba_mozliwosci(int n) {
long int wynik = 1;
for (int i = 0; i < n; i++) {
wynik *= 13;
}
return wynik;
}
void zmien_na_13(long int liczba, char tab[], char *tlumaczenie, int n) {
if (liczba < 13) {
tab[n - 1] = tlumaczenie[liczba % 13];
return;
}
zmien_na_13(liczba / 13, tab, tlumaczenie, n - 1);
tab[n - 1] = tlumaczenie[liczba % 13];
}
void sprawdz_czy_palindrom(char* tab, int n) {
for (int j = 0; j < n; j++) {
if (tab[j] != tab[n - j - 1]) break;
if (j == n - 1) {
for (int k = 0; k < n; k++) cout << tab[k];
}
}
}
void generuj_wszystkie(long int liczba_mozliwosci, char *tab, char *tlumaczenie,
int n) {
for (long int i = 0; i < liczba_mozliwosci; i++) {
if (i % 2 == 0) {
zmien_na_13(i, tab, tlumaczenie, n);
sprawdz_czy_palindrom(tab, n);
}
}
}
int main()
{
char tlumaczenie[13] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9
', 'a', 'b', 'c' };
int l, n;
scanf("%d", &l);
for (int i = 0; i < l; i++) {
scanf("%d", &n);
char *pomoc = (char*)malloc(n*sizeof(char));
long int liczba_opcji = liczba_mozliwosci(n);
for (int i = 0; i < n; i++) pomoc[i] = '0';
generuj_wszystkie(liczba_opcji, pomoc, tlumaczenie, n);
cout << endl;
free(pomoc);

}
return 0;
}

You might also like