整體思路就是取數字中最高位和最低位來比較,然後再分別向下取數迴圈此操作,如果其中有乙個不相等,返回false
否則返回true,
下面以乙個數字來具體說明
4 5 6 5 4
1.首先先取數字中的最高位,其他位都為0的數help,help是這樣算的:
int help=1;
while(n/hlep>=10)
2.n為給的數,也就是help最終變為40000,然後進行
n/help=4,//取數字最高位的數字
n%10=4//取數字最低為的數字
判斷n/help和n%10的值是否相等,如果不相等返回false,如果相等,反覆執行操作2,但是要更新n的值和help的值
更新為:
以上述的數字為例子,n為45654 % 1000 /10,也就是565
n=(n %help)/10
help=help/100,help變為100
public static boolean process(int num)
int help=1;
while(n/help>=10)
while(n!=0)
//去除上次已經比較過的最高位數字和最低位數字
n=(n%help)/10;
help/=100;
}return true;
}
判斷乙個數是否為回文數
問題描述 輸入乙個數值判斷是否為回文數 回文數是指乙個像12321 123321這樣 對稱 的數 解題思路 將數值的各個位存放在陣列中,若陣列中元素左右對稱,則為回文數,反之不是 設定 left 陣列最左邊下標 right 陣列最右邊下標 首先判斷第乙個和最後乙個數值是否相等,若相等,left ri...
判斷乙個數是否是回文數
題目 定義回文數的概念如下 如果乙個非負數左右完全對應,則該數是回文數,如 121,22 如果乙個負數的絕對值左右完全對應,則該數是回文數,如 121,22 public static void main string args printrandm arr,3 1 5 4 system.out.p...
判斷乙個數是否為回文數
判斷乙個數字是否位回文,不能使用額外的空間。負數可能是回文嗎?123321 最簡單的就是轉換成字串,然後判斷。但是本題要求不使用額外的空間 你也可以考慮將數字反轉,但是這樣的話,好像很容易溢位哦 所以,這裡肯定有乙個好辦法。希望你能夠想出來哦 格式 輸入有若干行,每一行輸入對應一行輸出,直到遇到終止...