#include<iostream>
using namespace std;
int main(){
int a[50],a_count=0;
int b[10];
for(int n=1;n<256;n++){
for(int i=0;i<10;i++)
b[i]=0;
int temp=n*n,count=0;
while(temp>0){
b[count++]=temp%10;
temp/=10;
}
bool judge=1;
for(int i=0;i<count/2;i++){
if(b[i]!=b[count-1-i]){
judge=0;
break;
}
}
if(judge==1)
a[a_count++]=n;
}
for(int i=0;i<a_count;i++)
cout<<a[i]<<endl;
}
public class Main {
public static void main(String[] args) {
//注意i=1起始,个人觉得i=0也符合
for (int i = 1; i < 256; i++) {
String s = String.valueOf(i * i);
int j=0;
int k=s.length()-1;
while (j<=k){
if (s.charAt(j)==s.charAt(k)){
j++;k--;
}else break;
}
if (j>k) System.out.println(i);
}
}
}
#include<stdio.h>
#include<string.h>
int main()
{
int m,n,i,j,k;
int a[5];
int flag=0;
for(i=1;i<=256;i++)
{
n=i*i;
for(j=0;;)
{
while(n/10!=0)
{
a[j]=n%10;
n=n/10;
j++; } if(n/10==0) { a[j]=n; break; } } for(k=0;k<=j/2;k++) { if(a[k]!=a[j-k]) { flag=1; break; } } if(flag==0) printf("%d\n",i); flag=0; } return 0;
}
#include<iostream>
#include<vector>
using namespace std;
bool fun(int k)
{
vector<int> v; //存储逆序数据
int m=k;
int ans =0;
while(m)
{
v.push_back(m%10);
m=m/10;
}
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
{
ans=ans*10+(*it);
}
if(ans==k) return true;
else return false;
}
int main()
{
for(int i=1;i<=256;i++)
{
int k=i*i;
bool flag=fun(k);
if(flag) cout<<i<<endl;
}
return 0;
}
这题不让输入数据,直接计算1-256的数据就行,这题目真坑人,说也说不清楚。