# C++ 程序：显示两个间隔之间的阿姆斯特朗数

> 原文： [https://www.programiz.com/cpp-programming/examples/armstrong-number-interval](https://www.programiz.com/cpp-programming/examples/armstrong-number-interval)

#### 使用循环和`if...else`语句查找两个整数（由用户输入）之间的所有阿姆斯特朗数的示例。

要理解此示例，您应该了解以下 [C++ 编程](/cpp-programming "C++ tutorial")主题：

*   [C++ `if`，`if...else`和嵌套`if...else`](/cpp-programming/if-else)
*   [C++ `for`循环](/cpp-programming/for-loop) 

* * *

该程序要求用户输入两个整数，并显示给定间隔之间的所有阿姆斯特朗数字。

如果您在编程时不知道如何检查数字是否为阿姆斯特朗，则该程序似乎有点复杂。

访问此页面以了解 [阿姆斯特朗数以及如何在 C++ 编程](/cpp-programming/examples/check-armstrong-number "C programming source code Armstrong number")中对其进行检查。

## 示例：显示间隔之间的阿姆斯特朗数

```cpp
#include <iostream>
using namespace std;

int main()
{
  int num1, num2, i, num, digit, sum;

  cout << "Enter first number: ";
  cin >> num1;

  cout << "Enter second number: ";
  cin >> num2;

  cout << "Armstrong numbers between " << num1 << " and " << num2 << " are: " << endl;
  for(i = num1; i <= num2; i++)
  {
        sum = 0;
        num = i;

        for(; num > 0; num /= 10)
        {
            digit = num % 10;
            sum = sum + digit * digit * digit;
        }

        if(sum == i)
        {
            cout << i << endl;
        }
  }

  return 0;
} 
```

**输出**

```cpp
Enter first number: 100
Enter second number: 400
Armstrong numbers between 100 and 400 are:
153
370
371 
```

在此程序中，假定用户总是先输入较小的数字。

如果用户先输入较大的数字，该程序将不会执行预期的任务。

如果用户首先输入较大的数字以使该程序正常工作，则可以将代码添加到[交换用户输入的两个数字](/cpp-programming/examples/swapping "C program to swap numbers")。

在此程序中，间隔之间的每个数字都被获取并存储在变量`num`中。 然后，在`num`中检索数字的每个数字并进行立方化（`^ 3`）。

将最后一位数字的求立方的结果添加到`sum`中。

最后，当遍历每个数字时，将`sum`与原始数字`i`进行比较。 如果它们相等，则该数字为阿姆斯特朗数字。