用c++打印所有不超过256,其平方具有对称性质的数。如2,11就是这样的数,因为2*2=4,11*11=121。
时间: 2023-12-10 09:39:10 浏览: 18
可以使用循环来判断每个数是否满足条件,并且使用字符串来判断其平方是否具有对称性质。下面是一个示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
bool isSymmetric(string s) {
int n = s.length();
for (int i = 0; i < n / 2; i++) {
if (s[i] != s[n - i - 1]) {
return false;
}
}
return true;
}
int main() {
for (int i = 1; i <= 256; i++) {
int square = i * i;
string s = to_string(square);
if (isSymmetric(s)) {
cout << i << endl;
}
}
return 0;
}
```
在这个代码中,`isSymmetric`函数用来判断一个字符串是否具有对称性质。它的实现方式是从两端开始比较字符是否相等,如果遇到不相等的字符则返回`false`,否则返回`true`。在`main`函数中,我们使用循环判断每个数的平方是否具有对称性质,如果满足条件则打印该数。注意,我们使用`to_string`函数将平方转换为字符串,以便于判断其是否具有对称性质。