回文數(shù)是指正反兩個(gè)方向讀都一樣的數(shù)字。例如121、12321、1234321都是回文數(shù)。在1000以內(nèi)的回文數(shù)有121、131、141、151……959、969、979、989、999,共有18個(gè)。在php中可以通過編寫代碼來判斷一個(gè)數(shù)是否是回文數(shù)。
首先,我們可以將題目的要求細(xì)化一下,判斷一個(gè)數(shù)是否是回文數(shù)的流程如下:
- 將數(shù)字轉(zhuǎn)換為字符串
- 將字符串分割為數(shù)組
- 將數(shù)組反轉(zhuǎn)
- 將反轉(zhuǎn)后的數(shù)組拼接為字符串
- 判斷原始字符串和反轉(zhuǎn)后的字符串是否相等
下面是一段php代碼,實(shí)現(xiàn)了判斷一個(gè)數(shù)是否是回文數(shù):
function isPalindrome($num) { $str = (string)$num; // 將數(shù)字轉(zhuǎn)換為字符串 $arr = str_split($str); // 將字符串分割為數(shù)組 $reverseArr = array_reverse($arr); // 將數(shù)組反轉(zhuǎn) $reverseStr = implode('', $reverseArr); // 將反轉(zhuǎn)后的數(shù)組拼接為字符串 return $str === $reverseStr; // 判斷原始字符串和反轉(zhuǎn)后的字符串是否相等 } // 測試 $num = 121; if (isPalindrome($num)) { echo "$num 是回文數(shù)"; } else { echo "$num 不是回文數(shù)"; }
上述代碼中,函數(shù)isPalindrome接受一個(gè)參數(shù)$num,將其轉(zhuǎn)換為字符串并分割為數(shù)組。然后,使用array_reverse函數(shù)將數(shù)組進(jìn)行反轉(zhuǎn),再使用implode函數(shù)將反轉(zhuǎn)后的數(shù)組拼接為字符串。最后,通過比較原始字符串和反轉(zhuǎn)后的字符串是否相等,來判斷該數(shù)是否為回文數(shù)。
下面我們來測試一下該函數(shù):
$nums = [123, 121, 12321, 1234321]; foreach ($nums as $num) { if (isPalindrome($num)) { echo "$num 是回文數(shù)
"; } else { echo "$num 不是回文數(shù)
"; } }
輸出結(jié)果為:
123 不是回文數(shù) 121 是回文數(shù) 12321 是回文數(shù) 1234321 是回文數(shù)
通過上述代碼的驗(yàn)證,我們可以看到123不是回文數(shù),而121、12321、1234321都是回文數(shù)。
綜上所述,我們通過php代碼可以判斷一個(gè)數(shù)是否是回文數(shù)。在1000以內(nèi)的回文數(shù)有121、131、141、151……959、969、979、989、999,共有18個(gè)。