21xrx.com
2025-07-08 10:16:55 Tuesday
登录
文章检索 我的文章 写文章
C++实现水仙花数的算法
2023-07-02 00:55:10 深夜i     19     0
C++ 水仙花数 算法

水仙花数是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为$1^3+5^3+3^3=153$。本文将介绍如何使用C++实现水仙花数的算法。

首先,我们需要明确水仙花数的范围,即3位数。我们可以使用for循环来遍历所有3位数,并判断它是否为水仙花数。代码如下:

for(int i=100;i<1000;i++)
  //判断i是否为水仙花数

接着,我们需要分离出i的个位、十位和百位。使用除法和取模运算即可实现。代码如下:

int a=i/100//得到百位
int b=(i/10)%10//得到十位
int c=i%10//得到个位

接下来,我们就可以根据水仙花数的定义来判断i是否为水仙花数了。如果是,就输出i。完整代码如下:

#include<iostream>
using namespace std;
int main(){
  for(int i=100;i<1000;i++){
    int a=i/100//得到百位
    int b=(i/10)%10//得到十位
    int c=i%10//得到个位
    if(a*a*a+b*b*b+c*c*c==i) //判断是否为水仙花数
      cout<<i<<endl; //输出水仙花数
    
  }
  return 0;
}

这样,我们就成功地使用C++实现了水仙花数的算法。但需要注意的是,这只是其中一种实现方法,还有一些其他的实现方法,如使用递归等。

  
  

评论区