21xrx.com
2025-04-28 07:41:58 Monday
文章检索 我的文章 写文章
C++语言编写判断水仙花数的程序
2023-07-05 11:44:47 深夜i     15     0
C++ 水仙花数 编程 循环 算法

水仙花数是指一个三位数,其各位数字的立方和等于该数本身。比如153就是一个水仙花数,因为1的立方+5的立方+3的立方=1+125+27=153。现在我们可以使用C++语言编写一个简单的程序来判断一个三位数是否为水仙花数。

首先,我们需要定义一个函数来计算一个三位数的各位数字的立方和。这个函数可以使用一个 while 循环来实现。我们先将该数字按位提取,并保存在一个数组中。然后我们就可以逐一计算各个数字的立方和。

int cube_sum(int num) {
  int digits[3];
  int sum = 0;
  for (int i = 0; i < 3; i++) {
    digits[i] = num % 10;
    num /= 10;
  }
  for (int i = 0; i < 3; i++) {
    sum += pow(digits[i], 3);
  }
  return sum;
}

然后我们就可以编写一个主函数来调用这个计算立方和的函数,并输出判断结果。我们可以使用一个 for 循环来遍历所有的三位数,然后调用 cube_sum 函数来判断是否为水仙花数。

int main() {
  for (int i = 100; i <= 999; i++) {
    if (cube_sum(i) == i)
      cout << i << " is a narcissistic number." << endl;
    
  }
  return 0;
}

通过这个程序,我们就可以输出所有的三位数中的水仙花数了。当然,我们还可以进行一些优化,比如将计算立方和的函数改为一个 inline 函数,或者使用更高效的算法来进行计算等等。

总之,使用C++语言编写一个判断水仙花数的程序是非常简单的,只需要定义一个计算立方和的函数,并在主函数中调用即可。这个程序不仅可以用来验证三位数是否为水仙花数,还可以用来练习C++语言的编写和调试技巧。

  
  

评论区

请求出错了