21xrx.com
2024-09-20 01:15:06 Friday
登录
文章检索 我的文章 写文章
C++实现水仙花数算法
2023-07-07 02:20:43 深夜i     --     --
C++ 水仙花数 算法

水仙花数是指一个n位数(n≥3)其各位数字的n次方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3=153。

在C++语言中,可以利用循环和条件语句来实现水仙花数算法。具体步骤如下:

1. 定义变量:需要定义变量n,digit,sum。

2. 输入数字:从控制台输入一个数字n,表示需要判断的数。

3. 计算位数:使用while语句计算该数的位数,即不断将n除以10直到商为0,这样能得到该数的位数digit。

4. 计算水仙花数:使用for语句循环检查每个位数上的数字,并计算当前位数的数字的digit次方。使用if语句判断当前位数的数字的digit次方是否等于sum。累加每个位数的数字的digit次方之和,若等于n,则该数是水仙花数,输出结果。

以下是C++代码实现:


#include <iostream>

#include <cmath>

using namespace std;

int main() {

  int n, digit, sum = 0, num;

  cout << "请输入一个三位数以上的数字:" << endl;

  cin >> n;

  num = n;

  while (num != 0) {

    digit++;

    num /= 10;

  }

  num = n;

  for (int i = 0; i < digit; i++) {

    int remainder = num % 10;

    sum += pow(remainder, digit);

    num /= 10;

  }

  if (sum == n)

    cout << "该数是水仙花数。" << endl;

   else

    cout << "该数不是水仙花数。" << endl;

  

  return 0;

}

该程序能够实现对任意三位数以上的数字的水仙花数判断。可以根据需要进行修改。

  
  

评论区

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