21xrx.com
2025-06-30 10:52:19 Monday
文章检索 我的文章 写文章
C++代码实现判断水仙花数
2023-07-05 13:15:24 深夜i     22     0
C++ 水仙花数 判断

水仙花数是指一个三位数各个位上数字的立方和等于该数本身的数,比如153就是一个水仙花数,因为1³+5³+3³=153。今天我们就来学习一下如何用C++代码实现判断水仙花数。

首先,我们需要使用三个变量来表示三位数的百位、十位、个位数字。可以用取余运算得到这些数字,代码如下:

int b = num / 100; // 取得百位数字
int s = num / 10 % 10; // 取得十位数字
int g = num % 10; // 取得个位数字

然后,我们需要计算这些数字的立方和,可以用循环语句来实现,代码如下:

int sum = 0; // 立方和
for(int i = 1; i <= 3; i++){
  int temp = 1;
  if(i == 1) temp = b; // 百位数字的立方
  else if(i == 2) temp = s; // 十位数字的立方
  else temp = g; // 个位数字的立方
  sum += temp * temp * temp;
}

最后,我们只需要判断立方和是否等于原数即可,代码如下:

if(sum == num)
  cout << num << "是水仙花数" << endl;
else
  cout << num << "不是水仙花数" << endl;

完整代码如下:

#include <iostream>
using namespace std;
int main(){
  int num;
  cout << "请输入一个三位数:";
  cin >> num;
  int b = num / 100; // 取得百位数字
  int s = num / 10 % 10; // 取得十位数字
  int g = num % 10; // 取得个位数字
  int sum = 0; // 立方和
  for(int i = 1; i <= 3; i++){
    int temp = 1;
    if(i == 1) temp = b; // 百位数字的立方
    else if(i == 2) temp = s; // 十位数字的立方
    else temp = g; // 个位数字的立方
    sum += temp * temp * temp;
  }
  if(sum == num)
    cout << num << "是水仙花数" << endl;
  
  else
    cout << num << "不是水仙花数" << endl;
  
  return 0;
}

以上就是C++代码实现判断水仙花数的方法,大家可以根据代码体验一下这个有趣的数学问题。

  
  

评论区