题解 | #回文对称数#
回文对称数
https://ac.nowcoder.com/acm/problem/22169
用字符串解决
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main()
{
int n=0,i=0,j=0;
cin>>n;
int num=0;//字符串长度
string s;
int a=min(n,9);
//一位数字一定是回文
for(i=1;i<=a;i++){
cout<<i<<endl;
}
//两位数字及以上
if(n>=10){
for(i=10;i<=n;i++){
s=to_string(i);
num=s.length();//转为字符串进行判断
while(s[j]==s[num-j-1] && j<num/2){//如果不加j<num/2条件会出现问题 11则j=2
j++;
}
if(j==num/2)//只要前后分别对应即可,j计数只到num/2
cout<<i<<endl;
j=0;//对j进行归0,后续继续计数
}
}
return 0;
}
# 个人浅薄理解,没有考虑时间以及空间复杂度分析