记录编号 |
364509 |
评测结果 |
AAAAAAA |
题目名称 |
双重回文数 |
最终得分 |
100 |
用户昵称 |
HeHe |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.002 s |
提交时间 |
2017-01-16 20:30:43 |
内存使用 |
0.36 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAXN 1234
struct kkk{
int s[MAXN];
int len,jz;
kkk()
{
memset(s,0,sizeof(s));
len=0;
}
kkk operator=(int n)
{
if(n==0)
{
len=1;
return *this;
}
while(n)
{
s[len]=n%jz;
n/=jz;
len++;
}
return *this;
}
kkk operator++()
{
s[0]+=1;
int i(0);
while(s[i]>=jz)
{
s[i+1]+=1;
s[i]-=jz;
i++;
}
i++;
if(i>len)len=i;
return *this;
}
bool pan()
{
int i(0),j(len-1);
while(i<j)
if(s[i]!=s[j])return 0;
else i++,j--;
return 1;
}
};
class ans{
private:
kkk num[11];
int sum,sta;
public:
ans()
{
for(int i=2;i<11;i++)
num[i].jz=i;
}
ans operator++()
{
for(int i=2;i<11;i++)
++num[i];
return *this;
}
void Get()
{
scanf("%d%d",&sum,&sta);
for(int i=2;i<11;i++)
num[i]=sta;
return ;
}
bool Pan()
{
int p(0);
for(int i=2;i<11;i++)
{
if(num[i].pan())++p;
if(p==2)return 1;
}
return 0;
}
void work()
{
for(int i(sta+1);sum>0;i++)
{
++(*this);
if(Pan())
{
cout<<i<<"\n";
sum--;
}
}
return ;
}
}hehe;
int main()
{
freopen("dualpal.in","r",stdin);
freopen("dualpal.out","w",stdout);
hehe.Get();
hehe. work();
return 0;
}