21xrx.com
2024-11-22 07:00:32 Friday
登录
文章检索 我的文章 写文章
如何在C++中查找给定区间内的阿姆斯特朗数?
2023-07-09 01:11:11 深夜i     --     --
C++ 查找 区间 阿姆斯特朗数

阿姆斯特朗数是指一个n位数字的各位数字的n次幂之和等于该数字本身的数。例如,1^3 + 5^3 + 3^3 = 153就是一个三位数的阿姆斯特朗数。

在C++中,我们可以使用for循环来查找给定区间内的阿姆斯特朗数。首先,我们需要声明三个变量:start、end和num,并通过用户输入来获取起始和结束的数字。

接下来,我们可以创建一个for循环,从start到end依次遍历每个数字。在循环内部,我们需要将当前数字拆分成每个数字,并使用for循环计算出每个数字的n次幂的和。最后,我们将这个和与当前数字进行比较,如果相等,则该数字是一个阿姆斯特朗数,我们可以将其打印到控制台上。

以下是代码实现:


#include <iostream>

#include <cmath>

using namespace std;

int main() {

  int start, end, num, sum;

  cout << "Enter start and end numbers: ";

  cin >> start >> end;

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

   num = i;

   sum = 0;

   while (num != 0) {

     int digit = num % 10;

     sum += pow(digit, to_string(i).length());

     num /= 10;

   }

   if (sum == i)

     cout << i << " is an Armstrong number." << endl;

   

  }

  return 0;

}

在上面的代码中,我们使用了to_string函数获取了当前数字的位数,以便在计算各位数字的n次幂时使用。运行程序后,控制台将输出给定区间内的所有阿姆斯特朗数。

总结来说,在C++中查找给定区间内的阿姆斯特朗数需要使用for循环和while循环,计算每个数字的n次幂之和,并将结果与该数字进行比较。这个过程可以通过使用pow函数和to_string函数来简化。

  
  

评论区

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