判斷乙個數字是否位回文,不能使用額外的空間。
負數可能是回文嗎?(-123321)
最簡單的就是轉換成字串,然後判斷。但是本題要求不使用額外的空間
你也可以考慮將數字反轉,但是這樣的話,好像很容易溢位哦~
所以,這裡肯定有乙個好辦法。希望你能夠想出來哦~
格式:輸入有若干行,每一行輸入對應一行輸出,直到遇到終止符號。判斷是否為回文,是,輸出true,否則輸出false。
樣例輸入
1000110001
樣例輸出
true
分析:設定兩個標誌r和l,r初始化為0,l初始化為數的位數。然後用while迴圈,判斷s[r]是否和s[l]相同,相同則r++,l--;否則結束迴圈。
#include #include using namespace std;
int main() {
char s[1000];
int l, r;
while(scanf("%s", s) != eof) {
l = strlen(s) - 1;
r = 0;
if(s[0] == '-') {
cout<<"false"<= l) {
cout<<"true"<
判斷乙個數是否為回文數
問題描述 輸入乙個數值判斷是否為回文數 回文數是指乙個像12321 123321這樣 對稱 的數 解題思路 將數值的各個位存放在陣列中,若陣列中元素左右對稱,則為回文數,反之不是 設定 left 陣列最左邊下標 right 陣列最右邊下標 首先判斷第乙個和最後乙個數值是否相等,若相等,left ri...
判斷乙個數是否為回文數
首先先寫了乙個判斷5位數是否為回文數 define crt secure no warnings include includeint main 判斷是否為回文數 if num 0 num 4 num 1 num 3 else system pause return 0 然後進一步擴充套件將5位數改...
C 判斷乙個數是否為回文
include using namespace std 判斷n是否為回文數 bool symm unsigned n return m n 解析 第一步先要反轉全部數字,然後再判斷是否與反轉前相等,相等即是回文。i 10是用來反轉數字的。i對10取餘,得到是個位上的問數值,如求123,反轉目標為32...