void(){ // 可以把char赋给string for (int i = 0; i < 10; i++) digitMap[i] = char(i + '0'); // to_string does not work, a known issue for (int i = 10; i <= 20; i++) digitMap[i] = (char) (i - 10 + 'A'); }
stringbase10ToB(int B, int x){ string baseB; if (x == 0) return"0"; while (x > 0) { baseB = digitMap[x % B] + baseB; x /= B; } return baseB; }
boolcheckIsPalindrome(string x){ int n = x.length(); for (int i = 0; i + i < n; i++) if (x[i] != x[n - i - 1]) returnfalse; returntrue; }
intmain(){ ofstream fout("palsquare.out"); ifstream fin("palsquare.in"); int B; fin >> B;
init();
for (int i = 1; i <= 300; i++) { string square = base10ToB(B, i * i); if (checkIsPalindrome(square)) { fout << base10ToB(B, i) << ' ' << square << endl; } }
近期评论