问题描述
“回文”是一种特殊的数或者文字短语。他们无论是顺读还是倒读,结果都一样。例如: 12321,5555,45554。读入一个5位整数,判断它是否是回文数。
输入
多组测试数据,每组一行,一个五位整数,数据以0结尾。
输出
对每组输入数据输出一行,如果输入数是回文数,输出“Yes.”,否则输出“No.”。
输入样列
12345
12321
11111
0
输出样例
No.
Yes.
Yes.
源代码
#include <stdio.h>
int main() {
int num;
while(1) {
scanf("%d", &num);
if (num == 0) {
break; // 输入 0 结束循环
}
int digit[5];
int temp = num;
for (int i = 0; i < 5; i++) {
digit[i] = temp % 10; // 将整数的每一位存在一个数组中
temp /= 10;
}
if (digit[0] == digit[4] && digit[1] == digit[3]) {
printf("Yes.\n");
} else {
printf("No.\n");
}
}
return 0;
}
程序通过 while
循环接收多组输入数据,当输入数字为 0 时结束循环。在循环中,我们首先使用 scanf
函数读入一个5位整数。
接着,将这个5位整数的每一位都存储到一个数组中,便于后续比较。具体地,我们用一个循环将整数的每一位分别取出来,并存储到 digit
数组中。
最后,判断 digit
数组中第1位和第5位是否相同,第2位和第4位是否相同。如果是回文数,则输出 “Yes.”,否则输出 “No.”。
我们运行程序并输入样例数据,得到了如下输出结果:
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END