21xrx.com
2024-12-23 01:51:23 Monday
登录
文章检索 我的文章 写文章
C++程序求解所有水仙花数
2023-07-06 17:44:43 深夜i     --     --
C++ 水仙花数 求解

水仙花数是一个三位数,它的每个数字的立方和等于它本身。例如,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。C++是一个强大的编程语言,可以轻松求解所有水仙花数。

首先,我们需要使用循环语句来遍历所有的三位数。使用for循环,我们可以从100到999依次遍历所有的三位数。在每一个循环中,我们需要将这个三位数拆分成个位数、十位数和百位数,然后计算它们的立方和。如果这个立方和等于这个三位数本身,那么我们就找到了一个水仙花数。

下面是一个实现这个算法的C++程序:


#include <iostream>

using namespace std;

int main()

{

 int num, digit, sum;

 cout << "所有的水仙花数是:" << endl;

 for (num = 100; num <= 999; num++)

 {

  sum = 0;

  for (int i = 1; i <= 3; i++)

  {

   digit = (num / (int)pow(10, i-1)) % 10;

   sum += pow(digit, 3);

  }

  if (sum == num)

  

   cout << num << endl;

  

 }

 return 0;

}

在这个程序中,我们定义了三个变量:num表示当前正在检查的三位数,digit表示个位数字、十位数字或百位数字,sum表示这个三位数的立方和。

然后,我们使用for循环来从100到999依次检查所有的三位数。在每一个循环中,我们使用一个内嵌的for循环来计算这个三位数的立方和。内嵌的for循环使用了一个pow函数来计算10的1、2或3次方,这是为了得到每个数字的位数。然后,我们将这个数字的立方累加到sum中。

最后,我们检查sum是否等于这个三位数本身。如果是,那么我们就输出这个三位数,它就是一个水仙花数。

在执行程序后,我们可以得到所有的水仙花数:


所有的水仙花数是:

153

370

371

407

这个程序演示了C++编程语言的强大功能,它可以轻松解决各种数学问题。

  
  

评论区

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