回文數是指正讀反讀都一樣的整數(如 121、1331)。本文提供一個標準 C++ 程式,可快速篩選出 10 到 1000 之間的所有回文數,適合初學者參考與移植。
對每個數字 m,透過取餘(% 10)與整除(/ 10)將其反轉為 n,若 m == n 則為回文數。
#include <stdio.h>
int main() {
int m, n, k;
for (m = 10; m <= 1000; m++) { // 題目要求從 10 開始
k = m;
n = 0;
while (k > 0) {
n = n * 10 + (k % 10);
k = k / 10;
}
if (m == n)
printf("%d ", m);
}
return 0;
}
程式輸出:
11 22 33 44 55 66 77 88 99 101 111 121 131 141 151 161 171 181 191 202 212 222 232 242 252 262 272 282 292 303 313 323 333 343 353 363 373 383 393 404 414 424 434 444 454 464 474 484 494 505 515 525 535 545 555 565 575 585 595 606 616 626 636 646 656 666 676 686 696 707 717 727 737 747 757 767 777 787 797 808 818 828 838 848 858 868 878 888 898 909 919 929 939 949 959 969 979 989 999
long long 或字串反轉比較。bool isPalindrome(int x) 函式,提高複用性。