21xrx.com
2024-11-22 06:20:34 Friday
登录
文章检索 我的文章 写文章
C++实现求解水仙花数的代码
2023-07-13 06:08:32 深夜i     --     --
C++ 水仙花数 代码

水仙花数是指一个n位数(n≥3),其每个数字的n次幂之和等于它本身。比如:153=1³+5³+3³。这里我们使用C++语言来实现求解水仙花数的代码。

首先,要求解水仙花数,需要了解如何获取一个数字的每一位数字。这可以通过对该数字进行除10取余操作得到,直到该数字变为0为止。代码如下:

int num = 153; // 以153为例

while(num != 0)

  int digit = num % 10;

  num /= 10;

  cout << digit << " "; // 输出每一位数字

接下来,我们需要对每一位数字进行n次幂的操作,并将结果相加。当结果等于该数本身时,就是一个水仙花数。代码如下:

int num = 153; // 以153为例

int n = 3; // 以3次幂为例

int sum = 0;

int temp = num; // 保存原始数字,便于最后判断是否为水仙花数

while(num != 0){

  int digit = num % 10;

  int power = 1;

  for(int i = 1; i <= n; i++){

    power *= digit;

  }

  sum += power;

  num /= 10;

}

if(sum == temp)

  cout << temp << "是一个水仙花数。";

else

  cout << temp << "不是一个水仙花数。";

最后附上完整代码:

#include

using namespace std;

int main()

{

  int num = 153; // 以153为例

  int n = 3; // 以3次幂为例

  int sum = 0;

  int temp = num; // 保存原始数字,便于最后判断是否为水仙花数

  while(num != 0){

    int digit = num % 10;

    int power = 1;

    for(int i = 1; i <= n; i++){

      power *= digit;

    }

    sum += power;

    num /= 10;

  }

  if(sum == temp)

    cout << temp << "是一个水仙花数。";

  else

    cout << temp << "不是一个水仙花数。";

  return 0;

}

通过以上代码,我们可以轻松求解任意一个水仙花数。

  
  

评论区

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