uasco Dual Palindromes
与上题一样,改改就1Y了。
/* ID: like_091 PROG: palsquare LANG: C++ */ #include<iostream> #include<fstream> #include<algorithm> #include<string> #include<map> using namespace std; //判断是否是回文串 bool pal(int s[], int n) { bool flag = true; for (int i = 0; i < n; i++) if (s[i] != s[n - i - 1]) { flag = false; break; } return flag; } int change(int n[], int x, int t) { int k = 0; while (x > 0) { n[k++] = x % t; x /= t; } for (int i = 0; i < k / 2; i++) { int tem = n[i]; n[i] = n[k - i - 1]; n[k - i - 1] = tem; } return k; } int main(void) { ifstream cin("palsquare.in"); ofstream cout("palsquare.out"); int n, s; while (cin>>n>>s) { int t = ++s; while (n) { int x[200], sum = 0; for (int i = 2; i <= 10; i++) { int k = change(x, t, i); if (pal(x, k))sum++; } if (sum >= 2) { cout<<t<<endl; n--; } ++t; } } return 0; }