迴文數(回文數)指正反讀相同的數字,如 121、1331。程式遍歷 2~9999,將每個數分解為位數陣列,再對稱比較判斷是否為迴文數。isPalindrome() 函式回傳 1 表示是迴文數。
a[](個位在前)。a[j] 與原數對應位數。#include <stdio.h>
int isPalindrome(int m);
int main() {
for (int i = 2; i < 10000; i++)
if (isPalindrome(i))
printf("是迴文數:%d\n", i);
return 0;
}
int isPalindrome(int m) {
if (m < 10) return 0;
int a[5], i=0, num=m;
while (m) { a[i++] = m%10; m/=10; }
for (int j=i-1; j>=0; j--)
if (a[j] != num%10) return 0;
else num/=10;
return 1;
}

可直接將數字轉字串比較,或數學方法反轉數字比較 rev == orig,更簡潔高效。