(usaco)双重回文数Dual Palindromes

题目传送门sxazr
从题中s+1开始枚举,判断每个数

#include <iostream>
#include <cstdio>
using namespace std;
int n,s,k,q;
void zr(int x,int y)
{
	int a[100001],s=0;
	while(x){
		a[++s]=x%y;
		x/=y;
	}
	if(a[1]==0||a[s]==0) return;
	for(int i=1;i<=s;i++)
	  if(a[i]!=a[s-i+1]) return;
	q++;
	return;
}
int main()
{
	cin>>n>>s;
	for(int i=s+1;k<n;i++){
		q=0;
		zr(i,10);
		for(int j=2;j<=9;j++)
		  zr(i,j);
		if(q>1){
			cout<<i<<endl;
			k++;
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42920137/article/details/88726717