#include<iostream>
#include<cstdio>
#include<math.h>
#include<string.h>
using namespace std;
typedef long long LL;
const LL maxx=2000000000;
#define N 100
LL sum[N],dp[N];
void inint()
{
int i,j;
dp[0]=0;
sum[1]=dp[1]=9;
dp[2]=9;
sum[2]=dp[1]+dp[2];
for(i=3;;i++)
{
dp[i]=pow(10,(i+1)/2)-pow(10,(i+1)/2-1);
sum[i]=sum[i-1]+dp[i];
if(sum[i]>maxx) break;
}
// cout<<i<<" "<<sum[i]<<" "<<maxx<<endl;
}
int main()
{
LL n;
int i,j,len;
char a[30];
inint();
while(scanf("%lld",&n)&&n)
{
for(i=1;;i++)
if(sum[i]>=n) break;
len=i;
if(len==1) { cout<<n<<endl; continue;}
n-=sum[i-1];
n+=pow(10,(len+1)/2-1) - 1;
sprintf(a,"%lld",n);
int slen=strlen(a);
printf("%s",a);
if(len&1) i=slen-2;
else i=slen-1;
for(;i>=0;i--)
printf("%c",a[i]);
puts("");
}
return 0;
}
uva 12050 - Palindrome Numbers
最新推荐文章于 2018-10-02 21:31:39 发布