本文同步发于洛谷博客,您也可以在题解页面访问。

回文数判断前面几位大佬已经讲的很清楚了,我讲一种新的 STL 做法。

这里介绍两个函数,reverse()to_string()

to_string()函数

to_string()是在 C++11 中新加入的函数,定义于<string>头文件中。用法为to_string(val),其中val可以是int,long,long long,unsigned int,unsigned long long,fload,double,long double类型。其作用是将数字转换成字符串。

reverse()函数

reverse()函数是一个可以翻转数组,stringvector等数据结构的函数,定义于<algorithm>头文件中。用法为reverse(p1,p2)p1为前指针,p2为后指针。

1
2
3
reverse(array,array+a_length) //数组
reverse(str.begin(),str.end()) //string
reverse(v.begin(),v.end()) //vector

明白之后代码就简单多了。

Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<bits/stdc++.h>
using namespace std;
int cnt=0;
int main(){
int l,r;
cin>>l>>r;
for(int i=l;i<=r;i++){
string s=to_string(i);
string ts=s;
reverse(s.begin(),s.end());
if(ts==s){
cnt++;
}
}
cout<<cnt<<endl;
return 0;
}