21xrx.com
2024-09-20 05:58:02 Friday
登录
文章检索 我的文章 写文章
C++编程:使用for循环生成水仙花数
2023-06-29 10:29:11 深夜i     --     --
C++ for循环 水仙花数

C++是一种非常流行的编程语言,它能够实现各种各样的计算和算法。其中,使用for循环生成水仙花数,是C++编程中的一项常见任务。本文将介绍如何使用for循环来生成水仙花数。

首先,我们需要知道什么是水仙花数。水仙花数,又称为Armstrong数,指一个$n$位数,其每个数位的$n$次方之和等于该数本身。例如,$153$是一个水仙花数,因为$1^3+5^3+3^3=153$。

接下来,我们可以使用for循环来生成水仙花数。具体步骤如下:

1. 循环$n$位数,从$100$开始。

2. 将当前数分解为各位数字。

3. 对每位数字求$n$次方并求和。

4. 判断和是否等于当前数,如果相等,则输出当前数。

5. 继续循环$n+1$位数,直到指定的位数。

下面是使用for循环来生成水仙花数的代码实现:


#include <iostream>

#include <cmath>

using namespace std;

int main()

{

  int n = 3; //生成n位数的水仙花数

  int lowerBound = pow(10, n-1); //指定下界,比如3位数的下界是100

  int upperBound = pow(10, n) - 1; //指定上界,比如3位数的上界是999

  for(int i=lowerBound; i<=upperBound; i++)

  {

    int num = i;

    int sum = 0;

    // 分解数字并计算n次方和

    while(num > 0)

    {

      int digit = num % 10;

      sum += pow(digit, n);

      num /= 10;

    }

    // 判断是否为水仙花数

    if(sum == i)

      cout << i << " ";

  }

  return 0;

}

上面的代码可以生成3位数的水仙花数,如果需要生成更多位数的水仙花数,只需要修改$n$的值即可。

总结来说,使用for循环生成水仙花数是一项简单而有趣的编程任务。通过实现这个任务,我们不仅可以巩固编程基础知识,还可以了解到一些有趣的数字特性。

  
  

评论区

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