π: [图片] π: 编写函数,从键盘输入一个整数,调用该函数来判断该整数是否为完全数,所谓完全数是指一个数的各因子(除该数本身)之和等于这个数本身,例如6=1+2+34 < e 11.编写函数,从键盘输入一字符串,判断该字符串是否为会回文,所谓回文是指,从前向后读和从后向前读是一样的
时间: 2024-03-06 17:49:10 浏览: 59
好的,我可以回答你的问题。
对于第一个问题,我可以给出以下的C++代码实现:
```c++
#include <iostream>
using namespace std;
bool isPerfect(int num) {
int sum = 1; // 因子之和初始化为1(除了本身,1也是它的因子)
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
sum += i; // 如果i是num的因子,则加入到因子之和中
}
}
return (sum == num); // 如果因子之和等于num本身,则说明是完全数
}
int main() {
int num;
cout << "请输入一个整数:" << endl;
cin >> num;
if (isPerfect(num)) {
cout << num << "是完全数。" << endl;
} else {
cout << num << "不是完全数。" << endl;
}
return 0;
}
```
对于第二个问题,我可以给出以下的C++代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(string str) {
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() {
string str;
cout << "请输入一个字符串:" << endl;
cin >> str;
if (isPalindrome(str)) {
cout << str << "是回文字符串。" << endl;
} else {
cout << str << "不是回文字符串。" << endl;
}
return 0;
}
```
希望我的回答对你有帮助!
阅读全文