判斷乙個數是否為回文數

2021-09-02 13:45:13 字數 1097 閱讀 1075

首先先寫了乙個判斷5位數是否為回文數

#define _crt_secure_no_warnings

#include#includeint main()

//判斷是否為回文數

if (num[0]== num[4]&&num[1]==num[3])

else

system("pause");

return 0;

}

然後進一步擴充套件將5位數改為n位數,因用的int 型,所以輸入的數不能超過21億。要想更大可將其該為long,longlong…並改num[10],下標的大小。

#define _crt_secure_no_warnings

#include#includeint main()

//將輸入的數按 個-0,十-1...存入陣列

for (int i = 0; i < n; i++);

//判斷是否為回文數

if (n>1)

} }if (ispal == 1)

system("pause");

return 0;

}

兩者的差別在於首先多了看輸入的是幾位數,因為不管是後面的將其存入陣列還是判斷是否為回文數都要用到。其次,判斷是否為回文數因不像5位數那麼短,所以用了另乙個**。

如果輸入的數為一位數肯定為回文數,其他則要滿足最高位等於最低位,依次類推,只要有乙個不滿足,就不是回文數,迴圈結束。

下面是另一種判斷是否為回文數的方法,將輸入的數「倒」過來,最高位變為最低位…然後比較兩數是否相等。

#define _crt_secure_no_warnings

#include#includeint pow(int a, int b)

return c;

}int main()

//將輸入的數按 個-0,十-1...存入陣列

for (int i = 0; i < n; i++);

if (a1 == a2)

else

system("pause");

return 0;

}

判斷乙個數是否為回文數

問題描述 輸入乙個數值判斷是否為回文數 回文數是指乙個像12321 123321這樣 對稱 的數 解題思路 將數值的各個位存放在陣列中,若陣列中元素左右對稱,則為回文數,反之不是 設定 left 陣列最左邊下標 right 陣列最右邊下標 首先判斷第乙個和最後乙個數值是否相等,若相等,left ri...

判斷乙個數是否為回文數

判斷乙個數字是否位回文,不能使用額外的空間。負數可能是回文嗎?123321 最簡單的就是轉換成字串,然後判斷。但是本題要求不使用額外的空間 你也可以考慮將數字反轉,但是這樣的話,好像很容易溢位哦 所以,這裡肯定有乙個好辦法。希望你能夠想出來哦 格式 輸入有若干行,每一行輸入對應一行輸出,直到遇到終止...

C 判斷乙個數是否為回文

include using namespace std 判斷n是否為回文數 bool symm unsigned n return m n 解析 第一步先要反轉全部數字,然後再判斷是否與反轉前相等,相等即是回文。i 10是用來反轉數字的。i對10取餘,得到是個位上的問數值,如求123,反轉目標為32...