21xrx.com
2024-12-22 21:42:08 Sunday
登录
文章检索 我的文章 写文章
C++编程:水仙花数
2023-06-28 09:22:42 深夜i     --     --
C++编程 水仙花数 循环 数组 控制语句

今天我们来讨论一下C++编程中的水仙花数。什么是水仙花数呢?水仙花数也称为自恋数,是指一个n位数(n≥3),其每个位上的数字的n次幂之和等于它本身。例如,153就是一个水仙花数,因为 $1^3+5^3+3^3=153$。

接下来我们来实现一个求解水仙花数的简单程序。首先,我们需要明确几个概念:

- n位数:如何判定一个数为n位数? 只需要判断它是否 $>10^{n-1}$ 且 $<10^n$ 即可。

- 数字的n次方:可以使用pow函数,其参数为底数和幂指数。

- 数字的每位数分离:可以使用循环和取模运算符%实现。

根据以上的概念,我们可以写出以下简单的程序:


#include <iostream>

#include <cmath>

using namespace std;

int main()

{

  int n;

  cout << "请输入位数n: ";

  cin >> n;

  for (int i = pow(10, n - 1); i < pow(10, n); i++)

  {

    int sum = 0;

    for (int j = i; j > 0; j /= 10)

    {

      int digit = j % 10;

      sum += pow(digit, n);

    }

    if (sum == i)

    

      cout << i << endl;

    

  }

  return 0;

}

程序中,我们首先输入位数n,然后使用两个循环分别枚举n位数和计算每个数的每位数的n次方之和。对于满足条件的数,我们输出它。需要注意的是,程序中使用了cmath头文件中的pow函数,需要手动添加头文件。

运行程序,输入位数n,即可得到所有的n位水仙花数。例如,当n=3时,输出为:


153

370

371

407

综上所述,编程求解水仙花数是C++编程非常基础和必要的内容,同时在循环与数学运算方面也考验了大家的编程能力。希望同学们能够通过这个小程序熟悉C++编程的基础语法和流程。

  
  

评论区

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