[USACO1.2]双重回文数 Dual Palindromes

版权声明:转载无所谓的。。。 https://blog.csdn.net/xuxiayang/article/details/82951971

大意

找到大于 S S 的后 n n 个在 2 2 ~ 10 10 进制中至少在两种进制下是回文数的回文数


思路

暴力模拟

代码

/*
ID:hzbismy1
LANG:C++
TASK:dualpal
*/
#include<cstdio>
using namespace std;int n,s,a[1001],len,k,t;
inline bool check(){for(register int i=1;(i<<1)<=len;i++) if(a[i]!=a[len-i+1]) return false;return true;}
signed main()
{
	freopen("dualpal.in","r",stdin);
	freopen("dualpal.out","w",stdout);
	scanf("%d%d",&n,&s);
	for(register int i=s+1;n>0;i++)
	{
		t=0;
		for(register int j=2;j<=10&&t<2;j++)
		{
			k=i;len=0;
			while(k) a[++len]=k%j,k/=j;//分解
			if(check()) t++;//判断
		}
		if(t==2) printf("%d\n",i),n--;
	}
}

猜你喜欢

转载自blog.csdn.net/xuxiayang/article/details/82951971