水题,任意进制转换+回文判断
头脑不太清晰,代码写的很乱。。。。。
代码如下:
/*
ID: 15674811
LANG: C++
TASK: palsquare
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<fstream>
using namespace std;
ofstream fout("palsquare.out");
ifstream fin("palsquare.in");
int B;
char str[100];
void print()
{
int len=strlen(str);
for(int i=len-1;i>=0;i--)
fout<<str[i];
}
int check()
{
int len=strlen(str);
char tmp[100];
int k=0;
for(int i=len-1;i>=0;i--)
{
tmp[k++]=str[i];
}
for(int i=0;i<len;i++)
if(str[i]!=tmp[i])
return 0;
return 1;
}
void dtoB(int i)
{
int d=i;
int cnt=0;
while(i)
{
int k=i%B;
i/=B;
if(k>=10)
{
str[cnt++]=‘A‘+k-10;
}
else
str[cnt++]=‘0‘+k;
}
str[cnt]=‘\0‘;
}
int main()
{
while(fin>>B)
{
for(int i=1;i<=300;i++)
{
dtoB(i*i);
if(check())
{
dtoB(i);
print();
fout<<" ";
dtoB(i*i);
print();
fout<<endl;
}
}
}
return 0;
}
原文地址:http://blog.csdn.net/acm_lkl/article/details/44102073