1、题目:
给出一个5位数,判断它是不是回文数。请编程实现。
提示:个位与万位相同,十位与千位相同即为回文数。如:12321。
2、程序分析:
- 已知是五位数,判断回文数,加上提示,所以我们直接比较 个位与万位,十位与千位即可,都满足就是回文数。
- 主要是如何从一个五位数取出每一位的计算
- 回文数:个位==万位&&十位==千位
- 回文数=对称数
3、知识点:
- 取出数字的每一位
- 等于(==),逻辑与(&&)
- 以5位数为例(万):
个位数字 = (num / 10000) % 10;
十位数字 = (num / 1000) % 10;
百位数字 = (num / 100) % 10;
千位数字 = (num / 10) % 10;
万位数字 = (num / 1) % 10;
4、代码展示:
#include<stdio.h>
void main() {
long ge, shi, qian, wan,x; //定义长整型,int类型只能存-128到127,万位需要长整型
printf("请输入一个五位数:");
scanf("%d",&x); //输入一个数,存入x
ge = (x / 10000) % 10;
shi = (x / 1000) % 10;
qian = (x / 10) % 10;
wan = x % 10;
printf("个位:%d,十位:%d,千位:%d,万位:%d\n", ge, shi, qian, wan); //本行可以不要,用于测试
if (ge == wan && shi == qian) {
printf("%d是回文数\n",x);
}
else
{
printf("%d不是回文数\n",x);
}
}