问题描述:
一个正整数,正读和反读都相同的数为回文数。
例如 2222 , 131131 , 24422442 , 3707337073 , 66 ,…… 所有 11 位数都是回文数。
给出一个正整数 𝑛n ( 1≤𝑛≤100001≤n≤10000 ),求出 1,2,…,𝑛1,2,…,n 之中(包括 11 和 𝑛n )的回文数的个数。
输入:任意给定一个正整数n(0<n<=10000
输出:一个正整数,表示【1,n】之间的回文数个数。
附代码:
#include<iostream>
using namespace std;
int main()
{
int n,z=0,a,b,c,d;
cin>>n;
a=0;
b=0;
c=0;
d=0;
for(int s=1;s<=n;s++)
{
if(s<10)
{
z++;
}
else if(s<100)
{
a=s/10;
b=s%10;
if(a==b)
{
z++;
}
}
else if(s<1000)
{
a=s/100;
b=s/10%10;
c=s%10;
if(a==c)
{
z++;
}
}
else if(s<=10000)
{
a=s/1000;
b=s/100%10;
c=s/10%10;
d=s%10;
if(a==d&&b==c)
{
z++;
}
}
}
cout<<z;
return 0;
}