21xrx.com
2024-12-23 01:58:02 Monday
登录
文章检索 我的文章 写文章
C++编程:求解水仙花数
2023-06-30 00:51:50 深夜i     --     --
C++ 水仙花数 求解

水仙花数,指一个数的每位数字的立方和等于它本身,如153和370,它们分别是1³+5³+3³和3³+7³+0³的结果。如果要用C++编程求解水仙花数,可以采取如下方法。

首先,我们可以定义一个函数,用来计算一个数字的立方和。为了方便,我们将计算立方和的过程单独定义为一个函数,如下所示:

int cube_sum(int num){

  int sum = 0;

  while(num > 0){

    int digit = num % 10;

    sum += digit * digit * digit;

    num /= 10;

  }

  return sum;

}

此函数中,我们通过循环遍历一个数字的每个位数,计算每一位数字的立方和,并将所有位数的立方和相加得到最终结果。

接下来,我们就可以根据上述函数,编写一个函数来判断某一数字是否为水仙花数:

bool is_narcissistic_number(int num){

  int sum = cube_sum(num);

  return sum == num;

}

此函数中,我们先利用上述函数计算出数字的立方和,再比较该和值是否等于原数字的值,若相等则表示该数字是水仙花数。

最后,我们只需在程序中通过一个循环,遍历所有可能的数字,判断每一个数字是否满足水仙花数的条件,若满足条件,则将该数字输出即可,如下所示:

void print_narcissistic_numbers(int start, int end){

  for(int i = start; i <= end; i++){

    if(is_narcissistic_number(i))

      cout << i << " ";

  }

}

在上述代码中,我们定义了一个函数print_narcissistic_numbers,来输出一个范围内的所有水仙花数,其中start和end分别表示范围的起始和终止数字。

通过以上方法,我们就可以轻松地使用C++编程求解水仙花数,让我们深入理解水仙花数这个有趣的数学概念。

  
  

评论区

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