21xrx.com
2024-12-27 20:19:34 Friday
登录
文章检索 我的文章 写文章
C++代码实现水仙花数的计算
2023-07-11 00:46:55 深夜i     --     --
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的三次方。如果你使用自定义函数进行计算,则需要自己编写立方函数。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复