判断一个数字是否是回文

题目:

不使用将数字转化为字符串的方式,判断数字是否为回文数字

 

题目解析:

      回文的特点是从前往后看和从后往前看得到的是同一个值,如1,11,121等;

      如果使用字符串化的方式,前后比对即可判断完成;

      不用字符串化时,我们可以根据回文本身的特点来进行处理--逆转。

 

算法实现:

 

//判断一个数字是否是回文 bool IsPalindrome(int iCandidate) { if(iCandidate<0)//负数肯定不是回文 return false; else { if(iCandidate<=9)//长度为1的整型数肯定是回文 return true; else { //获得逆转值 int iSrc=iCandidate; int iDst=0; int iPivot=0; int iPower=0; //获得iCandidate的逆转值 while(iSrc!=0) { iDst=iDst*10+iSrc%10; iSrc=iSrc/10; } //比较正序值与逆转值;如果一致,则是回文;否则不是回文 if(iDst==iCandidate) return true; else return false; } } }

你可能感兴趣的:(C/C++/C#)