记录编号 136339 评测结果 AAAAAAA
题目名称 双重回文数 最终得分 100
用户昵称 GravatarBokjan 是否通过 通过
代码语言 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;
}