0
已解决
夏子健
初级光能
初级光能
#include<iostream>
#include<cstring>
using namespace std;
int b,a[4],k;
int f(int x,int b)
{
if(x==0)
return 0;
f(x/b,b);
if(x%b>=10)
return char(x%b-10+'A');
else if(x%b<10)
return x%b;
}
int s1;
bool flag=true;
int main()
{ cin>>b;
for(int i=1;i<=300;i++)
{
s1=f(i*i,b);
while(s1!=0)
{
k++;
a[k]=s1%10;
s1/=10;
}
for(int j=1;j<=k/2;j++)
{
if(a[j]!=a[k-j+1])
{
flag=false;
break;
}
}
if(flag==true)
cout<<s1<<" "<<b<<endl;
}
return 0;
}
3
已采纳
于子轩
初级守护
初级守护
char a[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//36进制内
string change(int n)//n转化为b进制
{
string r="";//清空r
int yu;
while(n>0)
{
yu=n%b;
r=a[yu]+r;
n/=b;
}
return r;
}
void check(int a,int m)//a为平方数,m为原数
{
string r="";
r=change(a);
for(int i=0;i<=r.size()/2;i++)//用这一半和另一半比
{
if(r[i]!=r[r.size()-i-1])//一个不对return整个,减少时间
{
return;
}
}
cout<<change(m)<<" "<<r<<endl;//没return输出
}
上方核心代码;
另:换一种思路看问题。
0