阅读量:0
水仙花数是指一个n位数,其每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是使用for循环来求水仙花数的示例代码:
#include <iostream> #include <cmath> int main() { int num, n, digit, sum; for(num = 100; num < 1000; num++) { n = 0; sum = 0; int temp = num; // 计算num的位数 while(temp != 0) { temp /= 10; n++; } temp = num; // 求每个位上的数的n次幂之和 while(temp != 0) { digit = temp % 10; sum += pow(digit, n); temp /= 10; } // 判断是否是水仙花数并输出 if(num == sum) { std::cout << num << " "; } } return 0; }
此代码会输出所有的三位数水仙花数,即153、370、371、407。您可以根据需要修改循环的范围和位数来求不同位数的水仙花数。