#include <iostream> #include <cmath> using namespace std; bool issymmetry(int m) { int b, size; int num[7], test[7]; int k = pow(m, 2); if (k / 10 == 0) return true; else if (k / 100 == 0 && k / 10 != 0) size = 2; else if (k/1000==0&&k/100!=0) size = 3; else if (k/10000==0&&k/1000!=0) size = 4; else if (k / 10000 != 0) size = 5; int i = 0; b = size; while (k) { num[i] = k / int(pow(10, b - 1)); test[i] = num[i]; k=k% int(pow(10, b - 1)); b--; i++; } int j = 0; while (size) { // 判断是否对称; if (num[j] != test[size - 1]) return false; else { j++; size--; } } return true; //若对称时返回true; } int main() { for (int i = 0; i <= 256; i++) { if (issymmetry(i)) cout << i << endl; } return 0; } // 64 位输出请用 printf("%lld")