一个正整数,正读和反读都相同的数为回文数。例如22,131,2442,37073,6,…所有1位数都是回文数。给出一个正整数n(1≤n≤10000),求出1,2,…,n之中(包括1和n)的回文数的个数。
输入一个整数n输出一个整数,即1,2,…,n中全部回文数的个数。
样例输入
24
样例输出
11
代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
int i,a,b,c,e=0;
scanf("%d",&a);
for(i=1;i<=a;i++){//循环输入1,2...N进去判断是否为回文
b=i;
int d=0;//每次都必须将d置0
while(b!=0)//将i倒过来为d
{c=b%10;
d=d*10+c;
b/=10;
}
if(d==i) e++;//再用d和i进行判断是否相等,相等则e++
}
printf("%d",e);//输出1-N(包括1,N)中是回文的个数e
return 0;
}
反思:这里的判断是否为回文的方法值得学习!!!因为这种方法可以解决各种有关回文的题型。