21xrx.com
2025-03-24 18:35:41 Monday
文章检索 我的文章 写文章
C++实现水仙花数的代码
2023-06-26 09:19:27 深夜i     228     0
C++ 水仙花数 代码 实现

水仙花数,又称阿姆斯特朗数,是指一个 n 位数,其各位数字的 n 次方之和等于该数本身。例如,153 是一个水仙花数,因为 1³+5³+3³=153。现在我们来用 C++ 实现水仙花数的代码。

首先,我们需要明确水仙花数的定义,即一个 n 位数各位数字的 n 次方之和等于该数本身。根据这个定义,我们可以先得出一个数的位数,然后逐位计算其数字的 n 次方并进行累加,最后判断这个累加和是否等于该数本身。

下面是实现水仙花数代码的 C++ 版本:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
  int n, sum, num, i;
  cout << "请输入一个数:";
  cin >> n;
  num = n;
  sum = 0;
  i = to_string(n).length(); // 获取数字的位数
  while (num > 0)
  {
    sum += pow(num % 10, i); // 计算每个数字的 n 次方之和
    num /= 10;
  }
  if (sum == n)
    cout << n << " 是一个水仙花数" << endl;
  else
    cout << n << " 不是一个水仙花数" << endl;
  return 0;
}

代码中,我们首先输入一个数 n,并将其储存在变量 num 中,方便后续计算。然后,我们用变量 i 来获取 num 的位数,这里用到了 to_string() 函数,它能够将整数转换为字符串,从而获取字符串的长度。接着,我们用 while 循环逐位计算 num 各位数字的 i 次方之和,最后与原数 n 进行比较,若相等则输出该数是水仙花数,否则输出不是水仙花数。

可以通过输入不同的数来测试这个代码,它将会告诉我们该数是否是水仙花数。这个程序简单易懂,使用了循环和条件判断等基本语句,也适合初学者进行练习和学习。

  
  
下一篇: C++弱化this指针

评论区

请求出错了