尋找並輸出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 }
