21xrx.com
2024-12-22 21:59:30 Sunday
登录
文章检索 我的文章 写文章
C++实现水仙花数的代码
2023-06-26 09:19:27 深夜i     --     --
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指针

评论区

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