21xrx.com
2024-11-22 07:41:52 Friday
登录
文章检索 我的文章 写文章
C++程序:求解水仙花数
2023-07-02 20:08:00 深夜i     --     --
C++ 水仙花数 循环 求解 条件判断

水仙花数是一种特殊的自然数,它满足其各位数字的立方和等于该数本身。例如,153是水仙花数,因为 $1^3 + 5^3 + 3^3 = 153$。

在本文中,我们将使用C++编写一个程序来寻找水仙花数。首先,我们需要明确要解决的问题:给定一个范围,在这个范围内找到所有的水仙花数。为了达到这个目的,我们使用一个for循环和一些条件判断语句,具体如下:


#include <iostream>

using namespace std;

int main()

{

  int low, high;

  cout << "Enter the lower bound of the range: ";

  cin >> low;

  cout << "Enter the upper bound of the range: ";

  cin >> high;

  for (int i = low; i <= high; i++)

  {

    int sum = 0;

    int temp = i;

    while (temp != 0)

    {

      int digit = temp % 10;

      sum += digit * digit * digit;

      temp /= 10;

    }

    if (sum == i)

    

      cout << i << " is a narcissistic number." << endl;

    

  }

  return 0;

}

首先,我们输入所需范围的上限和下限,并将它们存储在变量low和high中。然后,我们使用一个for循环从低限循环到高限,检查每一个数是否是水仙花数。在每次循环中,我们设置一个变量sum和一个变量temp。变量temp是当前要检查的数,而变量sum是该数的各位数字的立方和。

接下来,我们使用一个while循环从变量temp中抽取出每个数字。每个数字的三次幂被添加到变量sum中。一旦temp中的数字全部被抽取出来并加到sum中,我们检查sum是否等于i。如果它们相等,那么我们就打印出i是一个水仙花数。

编译并运行程序,你会得到一个让你输入范围的提示。输入你所需的范围,程序将会输出在该范围内所有的水仙花数。

总的来说,这个程序简单而有效,可以识别在一个范围内所有的水仙花数。它也可以作为学习循环和条件语句的一个练习。

  
  

评论区

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