问题一
#include<iostream> using namespace std; bool symm(long n); int main() { int n; cin >> n; for (int i = 1;i <= n;i++) { if (symm(i) && symm(7 * i) && symm(3 * i * i)) cout << i << ' '; } return 0; } bool symm(long n) { long m = 0,i=n; while (i) { m = m * 10 + i % 10; i = i / 10; } if (m == n) return true; else return false; }//判断回文数
这道题的重点就在怎样判断回文数,判断回文数就要用到倒序,倒序就直接乘10加余数就好了。
倒序:
int reverse(int x)//x是被反转的数 { int m = 0; while (x) { m = m * 10 + x % 10; x = x / 10; } return m;//m是倒序后的数 }