为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
缥缈止盈 2018-10-23 22:18:48
#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");elseprintf("不是回文数\n");return 0;}大神们给解释下这个程序,,流程能看懂,但是判断的思路不清楚。。我看网上还有一些判断的程序,貌似比这个复杂些,能对比解释下更好了。
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

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

查看完整回答
反对 回复 2018-11-19
  • 1 回答
  • 0 关注
  • 952 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信