21xrx.com
2024-11-10 00:30:27 Sunday
登录
文章检索 我的文章 写文章
C++代码:输出3到7位的水仙花数
2023-07-05 01:42:58 深夜i     --     --
C++ 水仙花数 输出 三位数 七位数

在计算机编程中,水仙花数是指一个n位数,其各位数字的n次幂之和等于它本身。例如,153是一个三位数的水仙花数,它满足以下条件:

1³ + 5³ + 3³ = 153。

本文将介绍如何使用C++编写程序来输出3到7位的水仙花数。

首先,我们需要了解如何计算一个数的每一位数字。

假设有一个3位数n=123,我们可以依次计算其个位,十位和百位数字。

个位:n%10 = 3

十位:(n/10)%10 = 2

百位:(n/100)%10 = 1

在C++中,可以使用循环来计算所有位数的数字。下面是一个计算每一位数字的代码片段:

int num = 123; // 设置需要计算的数字

int sum = 0; // 存储n次幂之和

int digit; // 存储每一位数

while(num > 0){

  digit = num % 10; // 计算当前位数的数字

  sum += pow(digit, 3); // 将数字的三次方加入到总和中

  num /= 10; // 计算下一位数字

}

在上面的代码片段中,pow函数用于计算每个数字的三次方,因为水仙花数是它各位数字的三次方之和。

现在我们可以编写一个方法来输出3到7位的所有水仙花数:

void findNarcissisticNumber(int start, int end){

  for(int i = start; i <= end; i++){

    int sum = 0, num = i, digit;

    while(num > 0){

      digit = num % 10;

      sum += pow(digit, 3);

      num /= 10;

    }

    if(sum == i)

      cout << i << endl;

  }

}

在上面的代码中,我们使用了两个整数参数start和end来指定要查找的范围。我们使用for循环遍历这个范围,然后计算每个数字的每一位数字的三次方之和。如果这个和等于数字本身,那么这个数字就是一个水仙花数,我们将其输出。

最后,我们可以使用以下命令调用这个方法:

findNarcissisticNumber(100, 9999999);

这将在控制台上输出3到7位的所有水仙花数。

在本文中,我们学习了如何使用C++编写程序来输出3到7位的水仙花数。使用循环和数学函数,我们可以编写一个简单而有效的程序来计算这些数字,以便更好地理解计算机程序的编写和实现。

  
  

评论区

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