#include <iostream>
using namespace std;
int ind[100]; //здесь будем хранить цифры, ограничимся числами до 201 цифр
void palindrom(int n, int t) //n - всего цифр, t - позиция формирования
{
int m = (n >> 1) + (n & 1); //количество цифр слева. Для нечетного - включаем и центральную
if (t == m) //полный набор?
{
if (ind[0] != 0) //первые нули игнорируем
{
for (int i = 0; i < m; i++) //левая половина
cout << ind[i] << " ";
for (int i = (n & 1) ? m - 2 : m - 1; i >= 0; i--) //правая половина
cout << ind[i] << " ";
cout << endl;
}
return;
}
for (int i = 0; i < 10; i++) //перебираем цифры
{
ind[t] = i; //на t позиции
palindrom(n, t + 1); //форируем рекурсивно дальше!
}
}
int main() {
int n; //общее число цифр
cin >> n;
palindrom(n, 0);
system("pause");
return 0;
}
#include <iostream>
using namespace std;
int *ind = NULL; //здесь будем хранить цифры
int m;
int r;
void palindrom(int t) //t - позиция формирования
{
if (t == m) //полный набор?
{
if (ind[0] != 0) //первые нули игнорируем
{
for (int i = 0; i < m; i++) //левая половина
cout << ind[i] << " ";
for (int i = r ; i >= 0; i--) //правая половина
cout << ind[i] << " ";
cout << endl;
}
return;
}
for (int i = 0; i < 10; i++) //перебираем цифры
{
ind[t] = i; //на t позиции
palindrom(t + 1); //форируем рекурсивно дальше!
}
}
int main() {
int n; //общее число цифр
cin >> n;
m = (n >> 1) + (n & 1); //количество цифр слева. Для нечетного - включаем и центральную
r = (n & 1) ? m - 2 : m - 1;
ind = new int[m];
palindrom(0);
delete[] ind;
system("pause");
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.