寻找并输出11~999之间的回文数m
寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。
- 回文:各位数字左右对称的整数。
- 例如:11满足上述条件
- 112=121,113=1331
判断一个数是否是回文数的方法:求该数的反序数,若反序数和原数相等,则为回文数,否则不是回文数。
例如:121的反序数是121,所以121是回文数
123的反序数是321,所以123不是回文数
C++代码如下:
1 #include<iostream> 2 using namespace std; 3 4 bool symm(int m) { 5 int i = m; 6 int n = 0; 7 while (i != 0) { 8 n = n * 10 + i % 10; //求反序数 9 i /= 10; 10 } 11 return m == n; 12 } 13 14 int main() { 15 for (int i = 11; i < 1000; i++) { 16 if (symm(i) && symm(i*i)&symm(i*i*i)) { 17 cout << i << ' ' << i * i << ' ' << i * i*i << endl; 18 } 19 } 20 return 0; 21 }