/*
ID: lucien23
PROG: dualpal
LANG: C++
*/
#include<iostream>
#include<fstream>
#include<algorithm>
#include<string>
using namespace std;
string num2string(int num,int baseNum);
int main()
{
ifstream infile("dualpal.in");
ofstream outfile("dualpal.out");
if(!infile || !outfile)
{
cout<<"file operation failure!"<<endl;
return -1;
}
int N,S;
infile>>N>>S;
while(N>0)
{
S++;
int count=0;
for (int i=2;i<=10 && count<2;i++)
{
string strRevNum,strNum;
strNum=strRevNum=num2string(S,i);
reverse(strRevNum.begin(),strRevNum.end());
if(strNum==strRevNum)
count++;
}
if(count>=2)
{
N--;
outfile<<S<<endl;
}
}
return 0;
}
string num2string(int num,int baseNum)
{
int currentNum=num,remainder;
string strNum="";
while(currentNum>0)
{
remainder=currentNum%baseNum;
char chNum;
if(remainder>=10)
chNum='A'+remainder-10;
else
chNum=remainder+'0';
strNum=chNum+strNum;
currentNum/=baseNum;
}
return strNum;
}
USACO Section 1.2 Dual Palindromes
最新推荐文章于 2019-03-05 21:44:08 发布