让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。
如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!
五角星数(函数解题)C++ 解答
五角星数(五位自幂数)是指一个五位数,它的每个数位上的数字的5次幂之和等于它本身。我们需要找出所有这样的五位数。
解题思路
- 遍历所有五位数(10000到99999)
- 对于每个数,分离出它的每一位数字
- 计算每位数字的5次幂之和
- 如果这个和等于原数,则输出该数
C++ 实现代码
#include <iostream>
#include <cmath>
using namespace std;
bool isPentagramNumber(int num) {
if (num < 10000 || num > 99999) {
return false;
}
int original = num;
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += pow(digit, 5);
num /= 10;
}
return sum == original;
}
int main() {
for (int i = 10000; i <= 99999; ++i) {
if (isPentagramNumber(i)) {
cout << i << endl;
}
}
return 0;
}
代码说明
isPentagramNumber 函数用于判断一个数是否是五角星数:
- 首先检查数字是否是五位数
- 然后分离每一位数字并计算其5次幂之和
- 最后比较和与原数是否相等
main 函数遍历所有五位数,调用判断函数并输出符合条件的数
输出结果
运行程序将输出所有五位数的五角星数,根据题目描述,其中一个结果是54748。
注意事项
- 使用
pow 函数计算幂时,确保包含 <cmath> 头文件 - 在分离数字时,注意处理数字的顺序(从个位开始)
- 题目要求输出所有五位数的五角星数,因此需要遍历整个五位数范围