AcWing 1346. 回文平方
原题链接
简单
作者:
_cc
,
2021-02-10 20:33:06
,
所有人可见
,
阅读 357
C++ 代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
bool huiwen(string num){ //判断是否回文
for(int i=0,j=num.size()-1;i<j;i++,j--){
if(num[i]!=num[j]){
return false;
}
}
return true;
}
char get(int x){ //判断每次模除后相加的字符是不是大于等于10
if(x<=9){
return x+'0';
}
else{
return x-10+'A';
}
}
string jinzhi(int n,int b){ //把i的乘方转换为b进制的数字
string s;
while(n){
s=get(n%b)+s;
n/=b;
}
return s;
}
int main(){
int b;
cin>>b;
for(int i=1;i<=300;i++){
auto num=jinzhi(i*i,b);
if(huiwen(num)){
cout<<jinzhi(i,b)<<' '<<num<<endl;
}
}
return 0;
}