题目描述
打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。
输入描述:
无
输出描述:
每行一个数,表示对称平方数。
/********************************************
*解题思路:
*1.从1开始遍历到255.算出平方
*2.将得到的整数转换为字符串
*3.再将字符串逆置得到反向字符串
*4.利用strcmp()函数判断前后两个字符串是否相等
********************************************/
#include<iostream>
#include<algorithm>
#include<cstring>
#include<sstream>
using namespace std;
int main()
{
stringstream str;
//string s,a;
char a[100],s[100];
int n;
for(int i = 1;i < 256;++i)
{
str << i*i;
str >> s;
strcpy(a,s);
int len = strlen(a);
reverse(a,a+len);
if(strcmp(a,s) == 0)
{
cout << i <<endl;
}
str.clear();
}
return 0;
}