21xrx.com
2024-12-22 21:09:40 Sunday
登录
文章检索 我的文章 写文章
C++实现n位水仙花数
2023-06-29 08:40:48 深夜i     --     --
C++ 水仙花数 n位 实现 循环控制语句

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

在C++中,我们可以通过编写代码来计算n位水仙花数。实现过程如下:

1. 首先定义一个变量n表示数的位数,通过用户输入来确定n的值。

2. 然后使用for循环控制数字的范围,从10的n-1次方到10的n次方之间搜索所有可能的n位数。

3. 对于每个数,使用while循环将其分解为各个位上的数字,并计算该数位数字的n次幂之和。

4. 如果与原数相等,则输出该数为水仙花数。

下面是C++代码示例:

#include

#include

using namespace std;

int main()

{

  int n,sum,base;

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

  cin>>n;

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

  {

    sum=0;

    base=i;

    while(base) //分解为各个位上的数字并计算n次幂之和

    {

      sum+=pow(base%10,n);

      base/=10;

    }

    if(sum==i) //判断是否为水仙花数

      cout<<<" ";

  }

  return 0;

}

使用上述代码可以输出n位水仙花数,其中n的范围可以设置为3~7等。这个程序还有一些可以改进的地方,比如可以加入判断输入的n是否合法等。

  
  

评论区

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