判斷輸入字串是否為回文數。
回文數設n是一任意自然數。若將n的各位數字反向排列所得自然數n1與n相等,則稱n為一回文數。
if-else
do-while
while
概述:將字串首位末位數字進行比較,若兩數相同,則刪去首位和末位並繼續比較新數字的首末位直到中間數
步驟:1.得到數字
2.算出位數
3.迴圈比較前後數
(1)判斷現有數的位數
(2)利用pow使首位的位數擴大
(3)取首位
(4)%10取末位
(5)比較首末位
(6)判斷迴圈次數是否達到輸入位數的一半(奇數/2編譯器不計小數)
4.輸出結果
-2147483648~2147483647(int型)
將變數修改為long int 即可
#include
#include
intmain()
do d=a/
pow(
10,c-i)
;//前位縮排
d%=10
;//前數
a/=10
;}while
(b==d&&i;//檢查兩邊到中間是否相同
if(b!=d)
//中間數判斷
printf
("不是回文數");
else
if(i==k/2)
//i不夠大說明中間有數字不相等
printf
("是回文數");
else
printf
("不是回文數");
return0;
}
!此演算法相較於常見的「字串倒置法」效率低了很多,僅為新演算法嘗試,使用時需要注意效率要求。
輸入若為字母則輸出(不是回文數)
C語言 回文串判斷
time limit 1000ms memory limit 65536k 題型 程式設計題 語言 無限制 回文串是指乙個字串從左讀到右與從右讀到左是一樣的,現由鍵盤輸入一行字元 最多不超過80個字元,以回車結束 判斷能否通過去掉0個或1個字元,使得字串成為回文串,如果可以輸出y,否則輸出n 一行字...
C語言 判斷回文數
判斷乙個數是否為回文數,回文數就是它的數字反向排列所得的自然數與它的本身是相等的,比如,若n 12321,則稱它是乙個回文數。程式利用到乙個數字遍歷的for迴圈,將輸入的數字進行反向排列,再與原輸入的數字進行比較,如果相等則為回文數。如下 define crt secure no warnings ...
C 判斷回文串 中心擴散法
一種是暴力檢索 另外一種則是中心擴散法 暴力搜尋法 從字串的開始和末尾處標定乙個點後,依次向後向前檢索,並判斷前後檢索的字串是否相同 bool ispalindrome string s return true 中心擴散法 利用雙指標去線性掃瞄一遍 i,j 判斷是否回文。我們先預處理除所有的 rec...