輸出迴文數個數
阿新 • • 發佈:2021-06-11
這種題目其實很簡單,怎麼做呢?答案就是最基礎的除以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 }
來看看效果: