C语言 关于判断回文数的程序 ?

#include<stdio.h>
int main(void)
{
int a; 
scanf("%d",&a);
int m;
int sum = 0;
m = a;
while(m)
{
sum = sum*10 + m%10;
m /= 10; // m = m/10
}
if( sum == a)
printf("是回文数!\n");
else
printf("不是回文数\n");
return 0;
}

大神们给解释下这个程序,,流程能看懂,但是判断的思路不清楚。。
我看网上还有一些判断的程序,貌似比这个复杂些,能对比解释下更好了。

缥缈止盈
浏览 962回答 1
1回答

小怪兽爱吃肉

原理:任何一个数除以10的余数就是该数最后一位任何一个数除以10的商就是排除掉最后一位后的数(因为 c++ 两个整数相除结果还是整数)所以 ,一个数1234 就可以通过这种方法得到 123 和 4接下来对 123 进行同样的操作,就得到 12 和 3接下来得到 1 和 2接下来得到 0 和 1整个过程是个循环,当商不是 0 的时候就一直这么干每次拿到一个余数,都用来构造新数,新数=新数*10+余数所以经过四次循环后,我们得到新数 4321 ,如果是回文,那么新数应该等于原数,否则,说明不是回文。
打开App,查看更多内容
随时随地看视频慕课网APP