1. 程式人生 > 其它 >輸出迴文數個數

輸出迴文數個數

這種題目其實很簡單,怎麼做呢?答案就是最基礎的除以10,模10,反覆執行。

基本思路就是,我把這個數一步一步拆開,不斷地除以10,這個數會越變越小,同時不斷地模10,再不斷地用這個模出來的結果乘以10,相加,乘以10,相加,最後,我判斷一下這個重新組合的數跟原數是不是相等就可以了,如果是迴文數,那麼肯定是相等的。

下面上程式碼:

 1 #define _CRT_SECURE_NO_WARNINGS 1
 2 #include <stdio.h>
 3 #include <stdbool.h>
 4 
 5 bool isPalindrome(int n)  //判斷是否是迴文數
 6
{ 7 int n1 = n, n2 = 0; 8 while (n > 0) 9 { 10 n2 = n2 * 10 + n % 10; 11 n /= 10; 12 } 13 return n1 == n2; 14 } 15 16 int main() 17 { 18 int n, count = 0; 19 while (scanf("%d", &n) > 0) 20 { 21 for (int i = 1; i <= n; i++) { 22 if
(isPalindrome(i)) { 23 count++; 24 } 25 } 26 printf("%d\n", count); 27 count = 0; 28 } 29 return 0; 30 }

來看看效果: