记录编号 |
136339 |
评测结果 |
AAAAAAA |
题目名称 |
双重回文数 |
最终得分 |
100 |
用户昵称 |
Bokjan |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.004 s |
提交时间 |
2014-11-02 20:35:03 |
内存使用 |
0.29 MiB |
显示代码纯文本
#include <cstdio>
char num[10];
int strlen(char *_s)
{
char *__s = _s;
while(*__s != '\0')
++__s;
return (int)(__s - _s);
}
bool isPalindrome(char *str)
{
for(int i = 0, j = strlen(str) - 1; i < j; ++i, --j)
if(str[i] != str[j])
return false;
return true;
}
void Transform(char *num, int number, int system)
{
int ptr = 0;
while(number != 0){
num[ptr++] = number % system + '0';
number /= system;
}
num[ptr] = 0;
}
int main(void)
{
freopen("dualpal.in", "r", stdin);
freopen("dualpal.out", "w", stdout);
int n, s;
scanf("%d%d", &n, &s);
int printed = 0;
while(s++){
int count = 0;
sprintf(num, "%d", s);
if(isPalindrome(num))
++count;
for(int i = 2; i <= 9; ++i){
Transform(num, s, i);
if(isPalindrome(num))
++count;
if(2 == count)
break;
}
if(2 == count){
printf("%d\n", s);
++printed;
}
if(printed == n)
break;
}
return 0;
}