21xrx.com
2024-12-23 01:28:01 Monday
登录
文章检索 我的文章 写文章
C++实现水仙花数程序
2023-07-04 20:29:34 深夜i     --     --
C++ 水仙花数 程序 实现

水仙花数又称为“自恋数”,它是指一个三位数,该数的各个位数的立方和等于该数本身。例如,153就是一个水仙花数,因为$1^3+5^3+3^3=153$。在本文中,我们将利用C++语言来实现输出所有水仙花数的程序。

首先,我们需要定义一个函数来判断一个三位数是否是水仙花数。该函数将接受一个整型参数,即待判断的数,然后返回一个布尔型值表示该数是否为水仙花数。下面是该函数的代码:


bool isNarcissistic(int number) {

 int sum = 0;

 int digit = 0;

 int temp = number;

 while(temp != 0) {

  digit = temp % 10;

  sum += digit * digit * digit;

  temp /= 10;

 }

 return (sum == number);

}

该函数首先定义了一个sum变量表示各个位数的立方和,接着定义一个digit变量表示每一位的数字,最后定义一个temp变量表示待判断的数。接着在一个while循环中,我们将temp不断除以10来取得每一位数字,然后计算该位数字的立方并加到sum变量中。最后,我们比较得到的sum和原始的number是否相等来判断该数是否为水仙花数。

现在,我们已经定义好了判断水仙花数的函数,接下来我们要利用该函数来输出所有的水仙花数。为此,我们可以利用for循环来遍历所有可能的三位数,然后判断每一个数是否为水仙花数。下面是输出所有水仙花数的程序代码:


#include <iostream>

using namespace std;

bool isNarcissistic(int number) {

 int sum = 0;

 int digit = 0;

 int temp = number;

 while(temp != 0) {

  digit = temp % 10;

  sum += digit * digit * digit;

  temp /= 10;

 }

 return (sum == number);

}

int main() {

 for(int i = 100; i <= 999; i++) {

  if(isNarcissistic(i))

   cout << i << endl;

  

 }

 return 0;

}

该程序首先引入了iostream头文件以输出结果。然后定义了主函数main,在主函数中我们利用for循环来遍历所有可能的三位数,从100开始到999结束。在每一次循环中,我们调用isNarcissistic函数来判断该数是否为水仙花数,如果是,则输出该数的值。最后,我们返回0表示程序执行完毕。

在代码的最后,我们可以看到程序输出了所有的水仙花数,并展示了C++实现水仙花数程序的基本原理。

  
  

评论区

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