USACO 1.2-Dual Palindromes

/*
ID: m1590291
TASK: dualpal
LANG: C++
*/
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("dualpal.in");
ofstream fout ("dualpal.out");
const char a[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
int n, m;
bool check(int n, int m)
{
   string s("");
   do
   {
      s = a[n % m] + s;
      n /= m;
   } while (n > 0);
   if (s.size() == 1) return true;
   for (int i = 0; i <= s.size() / 2 - 1; i++)
     if (s[i] != s[s.size() - i - 1])
        return false;
   return true;
}
int main(void)
{
    int tot(0), k;
    fin >> n >> m;
    for (int i = m + 1; tot < n; i++)
    {
      k = 0;
      for (int j = 2; j <= 10; j++)
      {
         if (check(i, j))
            k++;
         if (k == 2)
         {
           tot++;
           fout << i << endl;
           break;
         }
      }
    }
    return 0;
}


原文地址:https://www.cnblogs.com/Jstyle-continue/p/6352043.html