回文數 數字正序和倒序相同(以下仅讨论正整数)
例如 121, 5 , 198 ....
[C] 纯文本查看 复制代码 # include <stdio.h>
/*
回文數 數字正序和倒序相同
例如 121, 5 , 198 ....
*/
int main(void){
int val;//存放待判定的數字
int m;
int sum=0;
printf("請輸入數字\n");
scanf("%d",&val);
m=val;
printf("m sum\n");
while(m){
sum=sum*10+m%10;
m /= 10;
}
if(val==sum)
printf("yes!\n");
else
printf("no\n");
return 0;
}
模拟执行过程:初始化 sum=0 m=123
sum | m | 0 | 123 | 0*10+123%10=3 | 12 | 3*10+12%10=32 | 1 | 32*10+1%10=321 | 0(跳出while) |
常规总结
按照数学算法,实际就是看这数没否被11整除,分情况讨论:
1.数<10 本身即为回文数
2.数≥10 能被11整除即为回文数,否则不是
[C] 纯文本查看 复制代码 # include <stdio.h>
int main(void){
int val; //存放待判定的數字
int m;
int sum=0;
printf("請輸入數字");
scanf("%d",&val);
if(val>10){
if(val%11==0) //被11整除
printf("yes\n");
else
printf("no\n");
}else{
printf("yes\n");
}
return 0;
}
|