21xrx.com
2024-12-23 02:37:31 Monday
登录
文章检索 我的文章 写文章
C++代码实现水仙花数
2023-07-01 01:32:16 深夜i     --     --
C++ 水仙花数 代码实现

水仙花数是指一个$n$位数 ($n>=3$),其每个位上的数字的$n$次幂之和等于其本身。例如153是一个水仙花数,因为$1^3+5^3+3^3=153$。实现水仙花数的求解可以采用程序编码实现。下面,我们使用C++编写一个求解水仙花数的程序。

首先,我们需要知道如何将一个数分离成个、十、百、千等位上的数字。这里我们使用取模运算和整除运算来实现,即用数$a$对10取模可以得到$a$的个位数,用$a$整除10可以获得$a$去掉个位数后剩下的数字。


int a, b, c;//定义三位数的个位、十位、百位数

int n;//原数

a=n%10;

b=n/10%10;

c=n/100;

接着,我们需要使用循环来遍历所有的$n$位数字,将其各个位数上的数字进行$n$次幂的运算,再相加判断是否等于原数。


for(int i=100; i<=999; i++){

  a=i%10;

  b=i/10%10;

  c=i/100;

  if(a*a*a+b*b*b+c*c*c==i)

    cout<<i<<" ";

  

}

最后,我们将完整的代码放在一起,就可以得到一个完整的求解水仙花数的程序了。


#include<iostream>

using namespace std;

int main(){

  int a, b, c;//定义三位数的个位、十位、百位数

  int n;//原数

  for(int i=100; i<=999; i++){

    a=i%10;

    b=i/10%10;

    c=i/100;

    if(a*a*a+b*b*b+c*c*c==i)

      cout<<i<<" ";

    

  }

  return 0;

}

这个程序的运行结果是:153 370 371 407。这些数字都是水仙花数,符合题设要求。通过这个例子,我们可以看到C++编码的基本语法和流程,以及如何使用循环和条件语句来编程解决问题。

  
  

评论区

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