21xrx.com
2024-12-22 21:28:30 Sunday
登录
文章检索 我的文章 写文章
C++程序:输出所有水仙花数
2023-07-11 10:24:30 深夜i     --     --
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。

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

  
  

评论区

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