關於乙個判斷Integer數是否為回文數的演算法問題

2021-08-04 02:48:45 字數 517 閱讀 2318

如題:determine whether an integer is a palindrome. do this without extra space.

自己雖然也寫出了能得到正確結果的答案,但看到大神寫的後,就無顏貼自己繁瑣的東西了。

看到的演算法如下:

public boolean ispalindrome(int x) 

return (x==rev || x==rev/10);

}

無疑是比較精簡的演算法,大概的解題方法是:

1. 先排除負數 /非零 /個位數字為零的數字;

2.接下來作出類似於將數字串對折直至兩邊長度對齊或長度差為1的兩個數字;

例如:給出數字為 123321

rev x

第一次 1 12332

第二次 12 1233

第三次 123 123

3.當rev 大於/等於x,這時如果數字是回文數,那麼這樣對折得到的數字也就是相等的(長度為奇數字的除去中間數);

判斷乙個數是否是回文數

題目 定義回文數的概念如下 如果乙個非負數左右完全對應,則該數是回文數,如 121,22 如果乙個負數的絕對值左右完全對應,則該數是回文數,如 121,22 public static void main string args printrandm arr,3 1 5 4 system.out.p...

判斷乙個整數是否是回文數

判定乙個正整數是否是乙個回文數。例如12121是回文數,而1231不是回文數。要判斷乙個整數是否是回文數,最自然的想法是把整數轉換成乙個字串,然後根據回文的對稱特性進行判斷。數字轉換為字串可以通過itoa函式實現,判斷字串是否為回文字串 如下 bool ispalindrome string str...

判斷乙個整數是否是回文數。

1 c語言不允許函式巢狀定義。解決辦法就是將函式放到外面定義。2 c語言裡沒有bool型true,false。需要自己定義 define bool int define true 1 define false 0或者使用標頭檔案stdbool.h。判斷乙個整數是否是回文數。include defin...