题目描述
一个正整数,正读和反读都相同的数为回文数,例如 22,131,2442,37073,6,⋯。所有的 1 位数都是回文数。
现给出一个正整数 n,求出 [1,n] 中的回文数的个数。
输入格式
一个整数 n。
输出格式
一个整数,即 1∼n 中全部回文数的个数。
输入输出样例
输入 #1
24
输出 #1
11
说明/提示
样例解释
在 1 至 24 中,回文数有 1∼9,11,22,共 11 个。
数据范围
1≤n≤。
思路
众所周知 ,求一个数的“倒”数需要用到以下代码:
while(j)
{
s=s*10+j%10;
j=j/10;
}
最后只需判断与原数相不相等就OK了
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,ANS=0;
cin>>n;
for(int i=1;i<=n;i++)
{
int j=i,s=0;
while(j)
{
s=s*10+j%10;
j=j/10;
}
if(s==i)ANS++;
}
cout<<ANS;
return 0;
}