题目:寻找特殊回文数
描述:
编写一个程序,寻找一个11到999之间的正整数m,满足以下条件:
m本身是一个回文数。m的平方(即m^2)是一个回文数。m的立方(即m^3)是一个回文数。
如果找到这样的数,程序应输出该数以及它的平方和立方;如果没有找到,则输出提示信息表示没有找到满足条件的数。
提示:
- 回文数是指正着读和反着读都相同的数,例如121、131等。
- 可以使用字符串操作来判断一个数是否是回文数。
输入:
- 用户输入一个11到999之间的正整数
m。
源代码:
#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(unsigned int n) {
string str = to_string(n);
int len = str.length();
for (int i = 0; i < len / 2; ++i) {
if (str[i] != str[len - 1 - i]) {
return false;
}
}
return true;
}
int main() {
unsigned int m;
cout << "请输入一个11~999的正整数m: ";
cin >> m;
unsigned int m2 = m * m, m3 = m * m * m;
if (isPalindrome(m) && isPalindrome(m2) && isPalindrome(m3)) {
cout << "满足条件的m是: " << m << endl;
cout << "m^2 = " << m2 << endl;
cout << "m^3 = " << m3 << endl;
}
else {
cout << "没有找到满足条件的m" << endl;
}
return 0;
}
运行截图:

2万+

被折叠的 条评论
为什么被折叠?



