21xrx.com
2024-11-22 06:37:57 Friday
登录
文章检索 我的文章 写文章
C++实现水仙花数的代码
2023-07-05 06:51:50 深夜i     --     --
C++ 水仙花数 代码

水仙花数,指一个三位数,其各个位上数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3+5^3+3^3=153。作为编程初学者来说,C++实现该功能代码是一项简单而重要的练习。

下面,我们来看一下如何用C++实现水仙花数的代码。

首先,我们需要定义一个函数来判断一个数字是否为水仙花数。该函数的形参为一个整数,返回值为一个布尔值。代码如下:

bool narcissistic(int num) {

  int sum = 0; // 定义立方和初始值为0

  int temp = num; // 将输入参数num保存在一个临时变量temp中

  while (temp > 0) {

    int digit = temp % 10; // 取出temp的个位数

    sum += digit * digit * digit; // 加上该位立方的结果

    temp /= 10; // temp除以10,丢掉个位数

  }

  return sum == num; // 返回sum是否等于原数num

}

以上代码的实现方法是:首先将输入的数保存在一个临时变量中,然后用while循环取出该数的各个位数,计算出每个位上数字的立方和,最后返回该数是否等于该数字的立方和。

接下来,我们需要在主函数中调用该函数并输出结果。主函数代码如下:

int main() {

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

    if (narcissistic(i))

      cout << i << "是水仙花数" << endl;

  }

  return 0;

}

以上代码的实现方法是:使用for循环来遍历所有三位数,如果该数是水仙花数,则输出该数是水仙花数。

现在,我们用一个完整的C++代码来展示如何实现水仙花数的功能:


#include <iostream>

using namespace std;

bool narcissistic(int num) {

  int sum = 0; // 定义立方和初始值为0

  int temp = num; // 将输入参数num保存在一个临时变量temp中

  while (temp > 0) {

    int digit = temp % 10; // 取出temp的个位数

    sum += digit * digit * digit; // 加上该位立方的结果

    temp /= 10; // temp除以10,丢掉个位数

  }

  return sum == num; // 返回sum是否等于原数num

}

int main() {

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

    if (narcissistic(i))

      cout << i << "是水仙花数" << endl;

    

  }

  return 0;

}

通过上述代码的实现,我们成功地用C++实现了水仙花数的功能,不仅加深了对数学知识的理解,还锻炼了编程能力,是一项非常有意义的练习。

  
  

评论区

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