方一 //打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。
/* #include <stdio.h>
int main()
{
int i, v, tv, nv;
for (i = 0; i < 256; ++i)
{
v = i*i;
tv = v;
nv = 0;
while (tv!=0)
{
nv = 10*nv+tv%10;
tv/=10;
}
if (nv == v){
printf ("%d
", i);
}
}
return 0;
}
*/
//方二
#include<stdio.h>
int main(void)
{
int i,n;
int n1,n2;
for(i=0;i<256;i++)
{
n=i*i;
n1=n;
n2=0;
while(n1!=0)
{
n2=n2*10+n1%10;
n1 /= 10;
}
if(n2==n)
{
printf("%d
",i);
}
}
return 0;
}
/*这两种解法的思路是一样的,主要运用循环来做,关键是将这个数的平方逐步拆分,用另一个数依次得到拆分获得的数,最后判断两数是否相等*/