C++ 寻找多种进制回文数:高效算法及代码实现
以下是使用C++编写的解决方案:\n\ncpp\n#include <iostream>\n#include <fstream>\n#include <vector>\n#include <algorithm>\n\nusing namespace std;\n\nbool isPalindrome(int num, int base) {\n vector<int> digits;\n while (num > 0) {\n digits.push_back(num % base);\n num /= base;\n }\n int left = 0, right = digits.size() - 1;\n while (left < right) {\n if (digits[left] != digits[right]) {\n return false;\n }\n left++;\n right--;\n }\n return true;\n}\n\nint main() {\n ifstream inputFile("input.txt");\n ofstream outputFile("output.txt");\n \n int N, S;\n inputFile >> N >> S;\n \n int count = 0;\n int num = S + 1;\n while (count < N) {\n int palindromeCount = 0;\n for (int base = 2; base <= 10; base++) {\n if (isPalindrome(num, base)) {\n palindromeCount++;\n }\n }\n if (palindromeCount >= 2) {\n outputFile << num << endl;\n count++;\n }\n num++;\n }\n \n inputFile.close();\n outputFile.close();\n \n return 0;\n}\n\n\n请确保在运行代码之前创建一个名为"input.txt"的输入文件,并将样例输入复制到该文件中。运行代码后,将会生成一个名为"output.txt"的输出文件,并包含解决方案的结果。
原文地址: https://www.cveoy.top/t/topic/pUXE 著作权归作者所有。请勿转载和采集!