使用C語言判斷某一個數是否是回文數(對稱數),此次為個人練習,若有錯誤敬請提出。
首先,我們需要知道回文數就是對稱數,例如:12321是回文數(對稱數),124421是回文數(對稱數),1231不是回文數(對稱數)。
判斷原理為:原整型數依次取余,將所得余數構造成一個新整型數,判斷新整型數與原整型數是否一致。若一致,則該整型數是回文數,若不一致,則該整型數不是回文數。
要求:輸入一個整型數,判斷是否是對稱數,如果是,輸出yes,否則輸出no,不用考慮這個整型數過大,int類型存不下,不用考慮負值。
代碼如下:
1 #include <stdio.h> 2 #include <math.h> 3 4 int main(){ 5 int g,a,k; 6 scanf("%d",&a); 7 g = 0; 8 k = a; 9 while (k) { 10 g = g * 10 + k % 10; 11 k = k / 10; 12 } 13 if (g == a) { 14 printf("yes\n"); 15 }else{ 16 printf("no\n"); 17 } 18 return 0; 19 }
運行結果:
輸入12321時,所以輸出的字符型應為 "yes" ,如下所示:
12321 yes
輸入1231時,所以輸出的字符型應為 "no" ,如下所示:
1231 no