Консультация № 143611
10.09.2008, 22:11
0.00 руб.
10.09.2008, 22:12
0 2 1
Зраствуйте!!!
Нужна помощь в написании программы на с++
Вывести все числа от 1 до заданного значения N, являющиеся палиндромами – т.е., читаемые в десятичной системе счисления одинаково с начала и с конца (например, 4884).

Обсуждение

Неизвестный
10.09.2008, 22:17
общий
просто пока я полный ламер в этом деле... а лабу надо сдать.... знаю что нужно сделать(алгоритм) и не могу его реализовать на с++.... программа сразу начинает обижаться и умирает ПОмогите пожалуйста!!!!!!!!!!!!!!!!!!!!!!!
Неизвестный
11.09.2008, 03:54
общий
это ответ
Здравствуйте, Иванова!
Для этого можно перевести число в строку (функция itoa), после чего сравнить эту строку с ее инверсией (функция strrev). Подробнее смотрите в коде:
Код:
 #include <string.h>
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char* argv[]) {

int n;

cout << "Input n: ";
cin >> n;

char digits[16];
char reverse[16];

cout << "Numbers - palindroms" << endl;
for(int i=1; i<=n; i++) {

_itoa(i, digits, 10);

strcpy(reverse, digits);
_strrev(reverse);

if(strcmp(digits, reverse) == 0)
cout << i << endl;
}

return 0;
}
Форма ответа