回文数的 问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 18:08:56
Group B:回文数

Description:

回文数是这样一个正整数:它从左往右读和从右往左读是一样的。例如1,111,121,505都是回文数。将1到100,000,000内所有回文数按从小到达排序后,第k个回文数是多少呢?

Input:

第一行为一个整数N(0<N<=108),表示询问的次数。以下N行每行一个整数k,表示询问第k个回文数是多少。

Output:

输出共N行,依次输出第k个回文数。

Sample Input:

2

5

10

Sample Output:

5

11

#include <stdio.h>
#include <stdlib.h>/*tc不用*/
#include <conio.h>/*tc不用*/
int palindromeyesno(int n)
{/*判断一个数是否为回文数*/
int backn=n;
int temp=0;
while(backn!=0)
{
temp*=10;
temp+=backn%10;
backn/=10;
}
return (temp==n?1:0);
}
int getPalindromeByNo(int no)
{/*取得第n个回文数*/
int count=1,i=1;

for(i=1;count<=no;i++)
if(palindromeyesno(i))
count++;
return i-1;
}
void main()
{
int ask_times=0;
int i;
int ask_list[108];

printf("Sample Input:\n");
scanf("%d",&ask_times);
fflush(stdin);/*清除流输入流可以用getch();getchar();代替*/
if((ask_times>108)||(ask_times<0)){
printf("error\n");
getch();/*如果用的是vc编译器,这个去掉*/
exit(-1);
}
for(i=0;i<ask_times;i++)
{
scanf("%d",&ask_list[i]);
fflush(stdin);