21xrx.com
2025-04-13 21:53:11 Sunday
文章检索 我的文章 写文章
C++程序:输出三位数的所有水仙花数
2023-07-12 11:56:02 深夜i     133     0
C++ 输出 三位数 水仙花数

水仙花数是指一个三位数,其各个位上的数字立方和等于这个数本身。例如,153是一个水仙花数,因为1³+5³+3³=153。如何用C++编写一个程序来输出所有的三位数水仙花数呢?

首先,我们需要定义一个函数来判断一个数是否为水仙花数。该函数需要接受一个整数作为参数,然后将该数的每个数字的立方加起来,如果结果等于该数本身,则返回true;否则返回false。

接下来,在main函数中,我们需要循环遍历所有的三位数(即从100到999),对于每个数,调用判断函数,并打印出所有的返回true的数。下面是完整的程序代码:

#include <iostream>
using namespace std;
bool isNarcissisticNumber(int num) {
  int sum = 0;
  int n = num;
  while (n > 0) {
    int digit = n % 10;
    sum += digit * digit * digit;
    n /= 10;
  }
  return num == sum;
}
int main() {
  for (int i = 100; i <= 999; i++) {
    if (isNarcissisticNumber(i))
      cout << i << endl;
    
  }
  return 0;
}

运行程序后,你会发现它输出了以下所有的水仙花数:

153

370

371

407

上述程序中,我们首先定义了一个函数isNarcissisticNumber来判断一个数是否为水仙花数。该函数使用while循环来依次计算每个数字的立方和,然后返回计算结果是否等于该数本身。

在main函数中,我们使用for循环遍历所有的三位数(即从100到999),每次调用isNarcissisticNumber函数来判断该数是否为水仙花数。如果是,就打印出该数。最后程序退出。

  
  

评论区

请求出错了