算法:判断是否回文数

题目:判断传入数字是否为回文数。

回文数是指一个像16461这样“对称”的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。

解法:

 1 public boolean isPalindromic(int number){
 2         if(number<10){
 3                 return true;
 4         }
 5         ArrayList<Integer> arry = new ArrayList<Integer>();
 6         do{
 7                 arry.add(number%10);
 8                 number = number/10;
 9         }while(number != 0);
10
11         for(int i=0; i<=((arry.size()-1)/2); i++){
12                 if(arry.get(i) != arry.get(arry.size()-1-i)){
13                         return false;
14                 }
15          }
16          return true;
17 }
时间: 2024-10-25 20:02:31

算法:判断是否回文数的相关文章

判断整形回文数

题意: 判断一个整数是否为回文数: 1.负数不是回文数 2.个位数一定是回文数 3.12321.6666.11等类似这样的数是回文数 下面是我写的代码: public boolean isPalindrome(int x) { if(x < 0){ return false; }else if(x<10){ return true; } int a=10,b=10; while(x/a > 9) a *= 10; if(x/a != x%b){ return false; }else{

【数据结构与算法】数学——回文数

回文数 LeetCode:回文数 题目描述: 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例: 输入: 121 输出: true 思想: x%10得到尾数,x/d(d为10的x的位数次方)得到首位数字,比较二者是否相同: 注意:循环条件必须是x>0而不是x>10.当x为个位数时,如果是中心位置必然是true,但如果是1000021这种情况(不是回文数),x最后为2,此时x%10跟x/d不相等需要再判断一轮. 代码: class Solution

判断一个数字是否为回文数

Determine whether an integer is a palindrome. Do this without extra space.(source) 判断一个数字是否为回文数,并且不使用额外的存储空间. "回文"是指正读反读都能读通的句子,那么回文数,就很容易理解,就是指一个数正反读的值是相同的.还有一个要求是不要使用额外的存储空间. Hints: 要将一个数的最高位与最低位比较,取出一个数的最低位容易(x%10),但要得到高位却很难. Solution 1: 首先得知

ACM之判断回文数

题目如下 这道题比较简单,先上Python代码感受一下,就一行搞定: #判断回文数 def isPalindrom(x):     return  str(x) == str(x)[::-1] 这种方法虽然简单,但是耗时比较长.再用Java解决一下看看 方法一 显然负数不可能是回文数,区间[0,9]的整数肯定是回文数,所以把这些确定的条件先进行判断 将整数的每一位放在链表中,然后将链表逆序,比较逆序链表与顺序链表元素是否一样,一样则是回文数,否则不是 代码如下: public class Pal

回文数的判断与生成

判断是不是回文数 12321 1221 public static void PJ() { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = sc.nextInt(); String s = num+""; String s1 =""; for (int i = s.length()-1; i>=0; i--) { s1+=s.cha

判断是否为回文数

//判断是否为回文数:若n=1234321,则称n为一回文数 let readline = require("readline-sync"); let newNum = 0; console.log("请输入您要判断的回文数"); let oldNum = parseInt(readline.question("")); //首先将oldNum赋值给临时变量temp,以内临时变量一直都是要变化的 //关键在于取出每一位 temp = temp/1

回文数问题

问题描述 我在2008年6月写了一篇随笔"可以使用C#语言的在线ACM题库",其中提到 Sphere Onlile Judge (SPOJ) 网站.现在我们来看看该网站 SPOJ Problem Set (classical) 中的"5. The Next Palindrome".这道题目的主要内容如下所示: The Next Palindrome: A positive integer is called a palindrome if its represent

Vijos 回文数

描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数87:STEP1:87+78 = 165 STEP2:165+561 = 726STEP3:726+627 = 1353 STEP4:1353+3531 = 4884在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884. 写一个程序,给定一个N(2<=N<=10或N=16)进制数

yzoi1109&amp;&amp;viojs1042最小步数的一点看法——回文数

Description - 问题描述 有一天,雄霸传授本人风神腿法第一式:捕风捉影..............的步法(弟子一:堂主,你大喘气呀.风:你给我闭嘴.)捕风捉影的关键是换气(换不好就会大喘气...). 使用捕风捉影这一招时并不是每一步都喘气,而是在特定的步数喘气.一般来说功力越高,喘气越稀疏.喘气的步数符合特定规律:第一要是SUSHU(弟子二:哇塞!堂主,你还会鸟语,我好好崇拜你呦!可是SUSHU是什么意思呢?风:笨蛋,那是汉语拼音!)第二要是一个回文数,回文数就是正反念一样的数,如: