21xrx.com
2025-06-20 17:08:48 Friday
登录
文章检索 我的文章 写文章
C++代码实现水仙花数的计算
2023-07-11 00:46:55 深夜i     17     0
C++ 水仙花数 计算

水仙花数是指一个数的每个数位的立方和等于该数字本身。例如,153是一个水仙花数,因为1³+5³+3³=153。计算水仙花数是编程中的常见算法之一。下面我们来看一下使用C++编写水仙花数计算程序的实现。

我们首先需要确定数字范围。一个三位数的每个数位的立方和最大也只有3×9³=2187。因此,我们只需要生成1到999之间的所有数字,并检查每个数字是否为水仙花数即可。

针对这个问题,我们可以使用for循环来生成数字,使用循环嵌套计算每个数字的各个数位上的数字的立方和,并将计算结果与当前数字进行比较。

下面是一段C++代码实现水仙花数的计算:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
  int num, temp, sum; //定义变量
  cout << "水仙花数有:" << endl;
  for (int i = 100; i <= 999; i++) { //生成1到999之间的所有数字
    num = i;
    sum = 0;
    for (int j = 1; j <= 3; j++) { //循环嵌套计算每个数位上的数字的立方和
      temp = num % 10;
      sum = sum + pow(temp, 3);
      num = num / 10;
    }
    if (sum == i) //若计算结果等于当前数字,则当前数字为水仙花数
      cout << i << " ";
  }
  cout << endl;
  return 0;
}

在这段代码中,我们首先定义了三个变量:num,temp和sum。其中,num表示当前正在判断的数字,temp表示当前数字的某一数位上的数字,sum表示数字的立方和。

然后,我们使用for循环生成数字1到999,并使用循环嵌套计算每个数字的各个数位上的数字的立方和。在计算结果等于当前数字时,就将当前数字输出,并输出所有水仙花数。

可以看到,在这段代码中使用pow函数来计算立方数,这条代码的作用是计算temp的三次方。如果你使用自定义函数进行计算,则需要自己编写立方函数。

  
  

评论区