需要注意的点:
1.x不一定一直都是三位数。
2.x的范围可能会超ll,超ll的那个数就是答案。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int a[100];
void i2s(ll i,string &s) ///将int 类型转换成string 类型
{
stringstream ss;
ss<<i;
ss>>s;
}
bool is_huiwen(ll x)
{
string s;
i2s(x,s);
string tmp=s;
reverse(s.begin(),s.end());
if(s==tmp)
{
return 1;
}
return 0;
}
int main()
{
ios::sync_with_stdio(false );
for(int i=0; i<=200; i++)
{
ll x=i;
int cnt=0;
int flag=1;
while(flag)
{
int n=0;
memset(a,0,sizeof(a));
ll t=x;
while(t)
{
a[++n]=t%10;
t/=10;
}
ll xx=0;
for(int i=1; i<=n; i++)
{
xx=xx*10+a[i];
}
x=x+xx;
cnt++;
if(is_huiwen(x))
{
flag=0;
}
if(x<0)
{
printf("%d\n",i);
return 0;
}
}
// printf("%lld---%d--%d\n",x,cnt,i);
}
// printf("%d\n",196); ///
}