Skip to content

Latest commit

 

History

History
79 lines (54 loc) · 2.42 KB

File metadata and controls

79 lines (54 loc) · 2.42 KB

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

原文: https://www.programiz.com/cpp-programming/examples/armstrong-number-interval

使用循环和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 << "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;
} 

输出

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

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

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

如果用户首先输入较大的数字以使该程序正常工作,则可以将代码添加到交换用户输入的两个数字

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

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

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