- Description
回文数是这样一个正整数:它从左往右读和从右往左读是一样的。例如1,111,121,505都是回文数。将1到100,000,000内所有回文数按从小到达排序后,第k个回文数是多少呢?
- Input
第一行为一个整数N,表示询问的次数。以下N行每行一个整数k,表示询问第k个回文数是多少。
- Output
输出共N行,按照输入数据的顺序,依次输出第k个回文数。
- Sample Input
2
5
10
- Sample Output
5
11
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int a[11]={0,9,18,108,198,1098,1998,10998,19998,109998,199998};
int main()
{
int m,i,w,n,j,count;
char b[11];
scanf("%d",&count);
while(count--)
{
scanf("%d",&m);
for(i=0;i<11;i++)
if(m>a[i]&&m<=a[i+1]){w=i+1;break;}
m=m-a[w-1];
j=(w+1)/2;
n=pow(10,j-1)+m-1;
itoa(n,b,10);
for(;j<w;j++)b[j]=b[w-j-1];
b[w]=0;
puts(b);}
return 0;
}