21xrx.com
2025-03-28 00:40:09 Friday
文章检索 我的文章 写文章
C++实现寻找三位数水仙花数
2023-07-05 11:05:44 深夜i     24     0
C++ 三位数 水仙花数 寻找

水仙花数是指一个三位数,其各位数字的立方和等于这个数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

在C++中,我们可以用循环和条件语句实现寻找三位数水仙花数的程序。

首先,我们需要用for循环遍历所有的三位数。我们可以从100开始,到999结束。在每个循环中,我们将当前数字分解成个位数、十位数和百位数。

这可以通过以下代码实现:

for (int i = 100; i <= 999; i++) {
  int a = i / 100;   //获取百位数
  int b = (i / 10) % 10//获取十位数
  int c = i % 10;    //获取个位数
}

接下来,我们需要判断这个数字是否是水仙花数。这可以通过计算各位数字的立方和来实现。如果结果等于这个数字本身,那么就是水仙花数。

下面的代码展示了完成此操作的方法:

for (int i = 100; i <= 999; i++) {
  int a = i / 100;   //获取百位数
  int b = (i / 10) % 10//获取十位数
  int c = i % 10;    //获取个位数
  int sum = a * a * a + b * b * b + c * c * c; //计算立方和
  if (sum == i)
    cout << i << "是水仙花数" << endl;
  
}

最后,我们完成了寻找三位数水仙花数的程序。完整代码如下:

#include<iostream>
#include<cstdlib>
using namespace std;
int main() {
  for (int i = 100; i <= 999; i++) {
    int a = i / 100;   //获取百位数
    int b = (i / 10) % 10//获取十位数
    int c = i % 10;    //获取个位数
    int sum = a * a * a + b * b * b + c * c * c; //计算立方和
    if (sum == i)
      cout << i << "是水仙花数" << endl;
    
  }
  return 0;
}

当你运行这个程序时,它将输出所有的三位数水仙花数:153,370,371,407。这些数字都是非常有趣的数学问题,也可以用来展示C++编程的基础语法和循环控制结构。

  
  

评论区

请求出错了