Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Проверка целого числа на "зеркальность"


Автор: paSha_X 14.12.2006, 04:31
Скажите пжалста, допустим мне дано 
int a=121;
Как проверяются целые числа на "зеркальность", т.е. справа-налево и слева-направо читаются одинаково?

Автор: Earnest 14.12.2006, 08:45
Преобразовать в строку и сравнивать посимвольно спереди и сзаду, пока не найдешь разницу или не сойдешься.


Автор: Voldemar2004 14.12.2006, 12:25
Код
#include <iostream>

#include <string>

//---------------------------------------------------------------------------
int main()
{

std::string my, buf;

my = "651156"; buf = my;

!strcmp( strrev( (char*)my.c_str()) , (char*)buf.c_str()  ) ? std::cout << buf : std::cout << "No";

return 0;
}
//---------------------------------------------------------------------------

Автор: zabivator 14.12.2006, 12:37
Voldemar2004, тогда уж так:
Код

#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
bool mirror( int number )
{
   std::ostringstream s;
   s<<number;
   return s.str().reverse() == s.str();
}
//---------------------------------------------------------------------------
int main()
{
std::cout<< mirror(651156)  ? 651156 : "no";
return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)