回文数判断的两种方法
1——1~10000内的小数字,高位除10取整 /,低位除10取余%,从原数的个位开始,构造原数字的回文数,若二者相等,则yes,反之no
2——大数字直接用字符串数组,从两边比较到中间,设置flag标志,若有一个为false,break退出比较
代码实现:
1——构造新数字
#include <stdio.h>
int main(){
//输入一个1~10000的数字
int a;
scanf("%d",&a);
int n,temp;
temp=a;
n=0;
while(temp>0){
n=n*10+temp%10;
temp/=10;
}
if(n==temp){
printf("yes");
}else{
printf("no");
}
return 0
}
————————————————
2——字符串数组
#include <stdio.h>
#include <string.h>
void detectsimilar(char *a){
int n=strlen(a);
int i,flag=1;
//奇数位和偶数位的处理次数一样
for(i=0;i<n/2;i++){
if(a[i]!=a[n-1-i]){
flag =0;
break;
}
if(flag==1){
printf("yes");
}else{
printf("no");
}