21xrx.com
2024-11-08 22:00:21 Friday
登录
文章检索 我的文章 写文章
C++代码实现水仙花数
2023-07-04 20:52:56 深夜i     --     --
C++ 水仙花数 循环 数据类型 条件判断

水仙花数(Narcissistic Number)是指一个$n$位十进制数,它的每个位上的数字的$n$次方之和等于它本身。例如,$153 = 1^3 + 5^3 + 3^3$,因此153是一个三位的水仙花数。

下面我们将使用C++代码实现水仙花数:


#include<iostream>

#include<cmath>

using namespace std;

int main() {

  int num, n, sum;

  for(num=100; num<1000; num++) {

    sum = 0;

    n = num;

    while(n > 0) {

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

      n /= 10;

    }

    if(sum == num)

      cout << num << " ";

    

  }

  return 0;

}

分析代码,我们可以看到:

1. 定义变量$num$表示当前数字,变量$n$表示$num$的某一位数字,变量$sum$表示$num$的每个数字的三次方和。

2. 循环变量$num$从100到999,即遍历所有的三位数。

3. 将变量$sum$初始化为0,将变量$n$赋值为$num$,循环求$n$的各个数位上的三次方之和。

4. 如果$sum$等于$num$,则说明$num$是一个水仙花数,输出$num$。

使用上述代码,可以得到结果为153 370 371 407,证明这四个数字都是水仙花数。

总的来说,C++代码实现水仙花数是一种简单而有效的方法,通过循环和取模等操作,可以方便地求解任意$n$位数是否为水仙花数。

  
  

评论区

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