好比你輸入的數是12321:
循環開始前:m=12321,sum=0;
第1次循環結束:m=1232,sum=1;
第2次循環結束:m=123,sum = 12;
第3次循環結束:m=12,sum=123;
第4次循環結束:m=1,sum=1232;
第5次循環結束:m=0,sum=12321。
輸入的是幾位數就循環幾回。
判斷的思路就是,經過循環依次把m的個位,十位,百位...上的數取出來,與sum*10相加。這樣獲得的數sum就是m顛倒以後的數,若是二者相等,那就是迴文數。spa
1 sum = 0; 2 for (i = n; i != 0; i /= 10) { 3 yu = i % 10; 4 sum = sum * 10 + yu; 5 } 6 if (sum == n){ 7 printf("是迴文數"); 8 } else { 9 printf("不是迴文數"); 10 }