21xrx.com
2025-03-28 14:49:19 Friday
文章检索 我的文章 写文章
C++程序:输出所有水仙花数
2023-07-11 10:24:30 深夜i     40     0
C++ 水仙花数 输出

水仙花数是指一个三位数各位数字的立方和等于该数本身,比如153就是一个水仙花数,因为$1^3+5^3+3^3=153$。现在我们来编写一个C++程序来输出所有的水仙花数。

首先,我们需要用for循环来枚举所有三位数。因为三位数最小是100,最大是999,所以我们可以枚举100~999之间的所有数。

接着,我们可以用if语句来判断这个数是否为水仙花数。判断方法就是将这个数的各个位上的数字分解出来,然后进行立方和运算,并判断结果是否等于该数本身。

我们可以用取模运算来分解出一个三位数的各个位上的数字。如何通过取模运算得出一个数的个位和十位呢?我们可以将该数对10取模得到它的个位数,再将它除以10再取模得到它的十位数。

最后,将所有的水仙花数打印出来就可以了。

下面是完整的C++程序代码:

#include <iostream>
using namespace std;
int main() {
  for (int num = 100; num <= 999; num++) {
    int digit1 = num % 10;
    int digit2 = (num / 10) % 10;
    int digit3 = num / 100;
    int sum = digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3;
    if (sum == num)
      cout << num << " ";
    
  }
  return 0;
}

在程序中,我们用了一个名为num的变量来枚举所有的三位数。然后,我们使用取模运算和整除运算得出了该数的个位、十位和百位上的数字,计算这三个数字的立方和,判断是否等于该数本身,如果是就将它输出。

现在,我们编译并运行这个程序,它会输出所有的水仙花数:153 370 371 407。

几百年前就存在的数学问题,现在可以用程序来解决了,这不仅是计算机的功劳,更是人类智慧的结晶。

  
  

评论区

请求出错了