找出10000以内的二次方回文数C++
时间: 2024-10-06 19:00:44 浏览: 18
找出10000以内的所有二次方回文数,即形如 \( a^2 \) 的数字,当其十进制形式正读和反读都一样时。以下是使用 C++ 编程语言的一个简单示例:
```cpp
#include <iostream>
#include <cmath>
bool isPalindrome(int num) {
int reversed = 0;
while (num > reversed) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
return num == reversed || (num != 0 && num == reversed / 10);
}
int findSquarePalindromes() {
for (int i = 0; std::pow(10, i) <= 100; ++i) { // 遍历从0到3次方,范围至10000
int square = std::pow(i, 2); // 计算平方
if (isPalindrome(square)) {
std::cout << square << " ";
}
}
return 0;
}
int main() {
findSquarePalindromes();
return 0;
}
```
在这个程序中,
- `isPalindrome` 函数检查一个整数是否为回文。
- `findSquarePalindromes` 循环遍历从0开始到9的平方(因为 \( 10^4 \) 已超过10000),如果找到回文的平方,就打印出来。
运行此程序,你会得到10000以内所有的二次方回文数。
阅读全文