水仙花数是指一个n位数,其各位数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
要解决C++中的水仙花数问题,可以编写一个程序来循环遍历所有可能的n位数,然后计算其各位数字的n次幂之和,最后判断是否等于原数。
以下是一个简单的C++程序示例来解决水仙花数问题:
#include <iostream>
#include <cmath>
int main() {
int num, sum, temp, digit;
std::cout << "水仙花数有:\n";
for (int i = 100; i < 1000; i++) {
num = i;
sum = 0;
while (num > 0) {
digit = num % 10;
sum += pow(digit, 3);
num /= 10;
}
if (sum == i) {
std::cout << i << " ";
}
}
return 0;
}
这个程序会输出所有的3位水仙花数。您也可以根据需要调整循环的范围来查找其他位数的水仙花数。