uasco Dual Palindromes

与上题一样,改改就1Y了。

/*
ID: like_091
PROG: palsquare
LANG: C++
*/
#include<iostream>
#include<fstream>
#include<algorithm>
#include<string>
#include<map>
using namespace std;

//判断是否是回文串
bool pal(int s[], int n)
{
	bool flag = true;
	for (int i = 0; i < n; i++)
		if (s[i] != s[n - i - 1])
		{
			flag = false;
			break;
		}
	return flag;
}
int change(int n[], int x, int t)
{
	int k = 0;
	while (x > 0)
	{
		n[k++] = x % t;
		x /= t;
	}
	for (int i = 0; i < k / 2; i++)
	{
		int tem = n[i];
		n[i] = n[k - i - 1];
		n[k - i - 1] = tem;
	}
	return k;
}
int main(void)
{
	ifstream cin("palsquare.in");
	ofstream cout("palsquare.out");
	int n, s;
	while (cin>>n>>s)
	{
		int t = ++s;
		while (n)
		{
			int x[200], sum = 0;
			for (int i = 2; i <= 10; i++)
			{
				int k = change(x, t, i);
				if (pal(x, k))sum++;
			}
			if (sum >= 2)
			{
				cout<<t<<endl;
				n--;
			}
			++t;
		}
	}
	return 0;
}
posted @ 2011-02-19 23:38  like@neu  阅读(236)  评论(0编辑  收藏  举报