c++中怎么用for循环求水仙花数

avatar
作者
筋斗云
阅读量: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。您可以根据需要修改循环的范围和位数来求不同位数的水仙花数。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!