// palindrome_number.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
//如果是回文,正反应该相同的大小
bool isPalindrome(int x)
{
if (x < 0)
return 0;
int r = 0;
int m = 0;
int x_ = x;
while (x_)
{
m = x_ % 10;
x_ = x_ / 10;
//如果在倒置的过程中出现超出int范围的情况,那一定不是回文
if (r > INT_MAX / 10 && (r == INT_MAX / 10 && m > INT_MAX % 10))
return 0;
r = r * 10 + m;
}
return r == x;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout << isPalindrome(1);
return 0;
}
//
#include "stdafx.h"
#include<iostream>
using namespace std;
//如果是回文,正反应该相同的大小
bool isPalindrome(int x)
{
if (x < 0)
return 0;
int r = 0;
int m = 0;
int x_ = x;
while (x_)
{
m = x_ % 10;
x_ = x_ / 10;
//如果在倒置的过程中出现超出int范围的情况,那一定不是回文
if (r > INT_MAX / 10 && (r == INT_MAX / 10 && m > INT_MAX % 10))
return 0;
r = r * 10 + m;
}
return r == x;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout << isPalindrome(1);
return 0;
}
//这里并没有将int转化为string或者char*,直接将int数倒置,从而通过是否相等来判断是否是回文。
除此之外还有:首先通过循环判断出int的位数,然后通过中间向两边的方法来逐个判断是否相等。这里可以直接除10的倍数,或者将int转化为string或char*来做。