问题描述:输入一组正整数,判断输入的数字是否为回文数,是则输出该数。输入-1时结束。提示:若一个正整数(首位不为0),从左向右读与从右向左读是一样的,则称作回文数,例如1,11,121,1221,12321 等都是回文数。
例如:输入 121 1212 22 2,则输出结果为 121 22 2
提示:不需要输入全部数据之后再统一处理,例如,输入1212时,121已输出。
思路:将数字逐位拆分,首尾对照,全部相同输出。判定大多数情况下需要flag变量!!!
代码:
#include <stdio.h>
int main(){
int n,a[10];
while(scanf("%d",&n),n!=-1){
int k=n,i=0,j=0,flag=1;
while(k!=0){
a[i++]=k%10;//逐位拆分;
k/=10;
}
i--;//下标需要回退一位
while(i>j){
if(a[j++]!=a[i--])
flag=0;
}
if(flag){
printf("%d\n",n);
}
}
return 0;
}
博客内容介绍了如何使用C语言判断输入的正整数是否为回文数,当输入-1时结束。通过逐位比较数字的首尾,若全部相同则输出该数。示例中给出了121, 1212, 22, 2等作为正确输出的情况。代码实现思路强调了使用flag变量进行判断。"
48784805,4628305,"解决TSM备份Oracle报错(rman-06012,ANR1401W)
403

被折叠的 条评论
为什么被折叠?



