题目描述
打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int main()
{
bool is_symmetric(string str);
for (int i = 1; i < 256; i++)
{
string str = std::to_string(i*i);
if (is_symmetric(str))
{
cout << i << endl;
}
}
return 0;
}
bool is_symmetric(string str)
{
int length = str.length();
int head = 0;
int tail = length - 1;
while (head < tail)
{
if (str[head] != str[tail])
{
return false;
}
head++;
tail--;
}
return true;
}
心得:
int转string: std::to_string()