C++输入一个正整数n,求1~n之间“回文数”的个数。回文数是指一个数倒过来和原数一样,如12121、11、1221、1是回文数,而1231不是回文数。 要求:必须使用函数模块编写程序
时间: 2024-04-08 09:29:37 浏览: 48
好的,我将使用函数模块编写一个程序来解决您的问题。以下是一个使用C++编写的程序,用于计算1到n之间的回文数个数:
```cpp
#include <iostream>
#include <string>
// 判断一个数是否为回文数
bool isPalindrome(int num) {
std::string str = std::to_string(num);
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
left++;
right--;
}
return true;
}
// 计算1到n之间的回文数个数
int countPalindromes(int n) {
int count = 0;
for (int i = 1; i <= n; i++) {
if (isPalindrome(i)) {
count++;
}
}
return count;
}
int main() {
int n;
std::cout << "请输入一个正整数n:";
std::cin >> n;
int result = countPalindromes(n);
std::cout << "1到" << n << "之间的回文数个数为:" << result << std::endl;
return 0;
}
```
您可以将以上代码保存为一个.cpp文件,然后使用C++编译器编译并运行该程序。程序会要求您输入一个正整数n,然后计算出1到n之间的回文数个数并输出结果。
希望这个程序可以帮助到您!如果您有任何其他问题,请随时提问。
阅读全文