你枚举每个i的时候,忘记初始化k了。
#include
main()
{
int i = 1, s, k = 0;
for ( ; i <= 256; i++)
{
s = i * i;
k = 0; //我加了这一句
for (;s != 0;)
{
k = k * 10 + s % 10;
s = s / 10;
}
if (k == i * i)
printf("%4d",i);
}
getch();
}
首先你要了解什么是回文数 该数字的特点是什么。"回文数"是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。
而你说的121 是平方回文数
所以我不知你要找哪种?
s=i*i;
for(;s!=0;)
改为
s=i*i;
k=0;
for(;s!=0;)
试试。
#include
main()
{
int i=1,s,k=0;
for (;i<=256;i++)
{ s=i*i;
k=0;
for(;s!=0;)
{ k=k*10+s%10;
s=s/10;
}
if(k==i*i)
printf("%4d",i);
}
getch();
}
11的平方是121 12的平方是144