判断回文数字

原创 2015年07月08日 21:26:28

给定一个数字,判断该数字是不是回文数字,也即121 6556均为回文数字

class Solution {
private:
	int num;
public:
	int get_max(int len)
	{
		len--;
		long long nAverage=1;
		while(len--)
		{
			nAverage*=2;
		}
		nAverage--;
		return nAverage;
	}
	int get_min(int len)
	{
		len--;
		long long nAverage=1;
		while(len--)
		{
			nAverage*=2;
		}		
		return 0-nAverage;
	}
	int getLen(int x)
	{
		int nAverage = 1;
		int nCount = 0;
		while (x/nAverage)
		{
			nAverage *= 10;
			nCount++;
		}		
		return nCount;
	}
	int get_pos_num(int pos)
	{
		int i = 0;
		int nAverage = 1;
		while (i != pos)
		{
			nAverage *= 10;
			i++;
		}
		int result = num % (nAverage * 10);
		result = result / nAverage;
		return result;
	}
	bool checkPar(int pos_1, int pos_2)
	{
		int value_1 = get_pos_num(pos_1);
		int value_2 = get_pos_num(pos_2);
		if (value_1 == value_2)
		{
			return true;
		}
		return false;
	}
	bool isPalindrome(int x) {
		if(x>=get_max(sizeof(int)*8))
		{
			return false;
		}
		if(x<=get_min(sizeof(int)*8))
		{
			return false;
		}				

		num = x;
		int len = getLen(x);
		int nCount = 0;
		int index=len/2;
		if (len & 0x1)
		{
			index++;
		}
		//位长为偶数
		for (int i = len - 1; i >= index; i--)
		{
			if (checkPar(i, nCount++))
			{
				continue;
			}
			else
			{
				return false;
			}
		}
		return true;
	}
};

思路:首先判断数字是否已经超出了int的界限,然后获得该数字的位长,如果是奇数位,则最后一个比较的位置索引为len/2+1,如果是偶数位,则最后一个比较的位置索引就是len/2; 然后从首尾分别同时进发,进行检测,查看是否是回文数字

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

63-输入一个数字,判断是不是回文数字

#include #include /* run this program using the console pauser or add your own getch, system("pau...

回文判断(C/C++)

回文判断(C/C++)

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

判断回文数

简单循环判断回文数

回文数判断

A - Palindromes Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Su...

判断回文数

如果一个数的反向倒置数和它的顺向数一样,那么这个数称为回文数。编写一个测试程序,提示用户输入一个整数值,然后报告这个数是不是回文数。 我先后一共写了三个函数。 方法一:由于题目要求输入的是整数值,所以...

回文数的判断(三种方法)

关于回文数的总结。 回文数判断的几种方法。 回文数的概念:即是给定一个数,这个数顺读和逆读都是一样的。例如:121,1221是回文数,123,1231不是回文数。

判断回文字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。 《递归入门》 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的。比如"level" 、 “aaabbaaa” ...

判断回文字符串

问:影响SQL Server性能的主要原因都有哪些? 答:影响SQL Server性能的关键主要包括以下几个方面: 第一方面:逻辑数据库和表的设计 数据库的逻辑设计、包括表与表之间的关系是优化关系型数...

判断回文字符串

《递归入门》 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的。比如"level" 、 “aaabbaaa” 题目:判断一个字符串是否为回文 解法:递归 ...

栈浅析[解密回文]

栈的实现很简单,只需要一个一维数组和一个指向栈顶的变量top就可以了。我们通过top来对栈进行插入和删除操作。      栈究竟有哪些作用呢?我们来看一个例子。“xyzyx”是一个回文字符串...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)