回文 陣列 數字 字串

2021-08-09 14:01:04 字數 1600 閱讀 7275

回文,即把相同的詞彙或句子,在下文中調換位置或顛倒過來,產生首尾回環的情趣….簡單來說,就是正著讀反著讀是一樣的。

那麼,在c語言一共有三種形式的回文——數字、陣列、字串。下面就對這三種回文的判斷方法進行解說。

一、陣列——

怎樣判斷乙個陣列是不是回文?指標的解引用在回文判斷上起到了非常重要的作用,也就是兩個指標分別指向陣列的頭和尾,同時向中間移動、靠攏,再通過解引用來進行判斷,如下圖:

具體**實現:

bool is_arr(int *arr, int length)

while(p>arr)//回文判斷

}return

true;

}int main()

; if(is_arr(arr, sizeof(arr)/sizeof(arr[0])))

else

return

0;}

二、字串——」abcdcba」字串區別於陣列的乙個地方就是——結尾標誌』\0』,字串的長度就不用作為引數傳入函式中了,找結尾比較方便。

p--;//找結尾

while(p>str)

}return

true;

}int main()

else

return

0;}三、數字——1234321數字的回文,是這三種情況中最複雜的一種,這其中就需要解決幾個問題:一是如何將數字的各個位取出來,二是用來取數字的方法有幾種。

1.將數字取出之後,存放在陣列當中

//把數字放進陣列裡

int count_num(int num)//計算數字的位數

return count;

}bool is_num(int num)

if(is_arr(p,length))//利用陣列回文判斷函式,進行回文判斷

free(p);

p = null;

return

false;

}int main()

else

return

0;}

2.將數字取出來之後,轉化為字串

bool is_num2(int num)

p[length] = '\0';//字串一定要結尾

if(is_str(p))

free(p);

p = null;

return

false;

}int main()

else

return

0;}

藍橋杯 回文數字 (字串!!)

回文數字 時間限制 1.0s 記憶體限制 256.0mb 問題描述 觀察數字 12321,123321 都有乙個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做 回文數字。本題要求你找到一些5位或6位的十進位制數字。滿足如下要求 該數字的各個數字之和等於輸入的整數。輸入格式 乙個...

藍橋杯 回文數字 (字串!!)

回文數字 時間限制 1.0s 記憶體限制 256.0mb 問題描寫敘述 觀察數字 12321。123321 都有乙個共同的特徵,不管從左到右讀還是從右向左讀,都是同樣的。這種數字叫做 回文數字。本題要求你找到一些5位或6位的十進位制數字。滿足例如以下要求 該數字的各個數字之和等於輸入的整數。輸入格式...

字串轉為數字。字串轉為陣列。

字串轉為數字 var a 12.3456 1,a 0 後面減去0 2,a 取反再取反 3,parseint a 4,a前面寫加號 轉為整型數字,parseint a 12 浮點型數字,parsefloat a 12.3456 還有一種是 str 0或者 str 1。利用js的弱型別的特點把字串轉為數...