查找两个数字之间的阿姆斯特朗数的 C++ 程序

本文提供了一个使用循环和 if...else 语句查找两个整数(由用户输入)之间的所有阿姆斯特朗数的示例。

要理解此示例,您应该具备以下 C++ 编程 主题的知识:

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

如果你不知道如何在编程中检查一个数字是否是阿姆斯特朗数,那么这个程序可能看起来可能有点复杂。

访问此页面以了解阿姆斯特朗数以及如何在 C++ 编程中检查它

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

#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 << "阿姆斯特朗数 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;
}

输出

Enter first number: 1
Enter second number: 10000
Armstrong numbers between 1 and 10000 are:
1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474,

在这个程序中,假设用户总是先输入较小的数字。

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

如果用户先输入较大的数字,您可以添加代码来交换用户输入的两个数字,以使该程序正常运行。

在这个程序中,间隔之间的每个数字都被取出并存储在变量 num 中. 然后,检查 num 是否是一个阿姆斯特朗数。

如果 sum == i ,则数字是一个阿姆斯特朗数,则输出此数字。