C++ 程序 在两个整数间查找阿姆斯特朗数

C++ 程序 在两个整数间查找阿姆斯特朗数

阿姆斯特朗数(Armstrong number)是指一个 n 位数 ( n≥3 ),它的每个位上的数的 n 次幂之和等于它本身。

例如:153 = 1^3 + 5^3 + 3^3,是一个 3 位数的阿姆斯特朗数。

在本文中,我们将写一个 C++ 程序来查找两个整数之间的所有阿姆斯特朗数。

算法

我们将用一个函数来检查某个数是否为阿姆斯特朗数,并将其用在主函数中来查找两个整数之间的所有阿姆斯特朗数。

下面是我们将使用的算法:

  1. 从第一个整数开始迭代到第二个整数
  2. 对于每个整数,计算其位数 n
  3. 将该整数的每个位数的 n 次幂加起来得到总和 sum
  4. 如果 sum 等于该整数,则将其打印出来,表示该整数是一个阿姆斯特朗数

代码

下面是我们的 C++ 代码:

#include <iostream>
#include <cmath>

using namespace std;

bool isArmstrong(int num) {
    int sum = 0;
    int n = to_string(num).length();
    int temp = num;
    while (temp > 0) {
        int digit = temp % 10;
        sum += pow(digit, n);
        temp /= 10;
    }
    return sum == num;
}

void findArmstrong(int start, int end) {
    for (int i = start; i <= end; i++) {
        if (isArmstrong(i)) {
            cout << i << " ";
        }
    }
}

int main() {
    int start, end;
    cout << "请输入两个整数(以空格分隔):";
    cin >> start >> end;
    cout << start << " 到 " << end << " 之间的阿姆斯特朗数为:";
    findArmstrong(start, end);
    return 0;
}

在上面的代码中,我们使用了
“`isArmstrong“` 函数来检查一个数是否为阿姆斯特朗数。该函数的实现是先计算该数的位数,然后将每个位数的 n 次幂加起来得到总和,最后比较该数和总和是否相等。

在主函数
“`main“` 中,我们通过输入两个整数来调用 “`findArmstrong“` 函数来查找两个整数之间的所有阿姆斯特朗数。该函数使用一个 for 循环来迭代两个整数之间的所有数,并通过调用 “`isArmstrong“` 函数来检查每个数是否为阿姆斯特朗数。如果是,则将其打印出来。

要运行上面的程序,请将其保存为
“`armstrong.cpp“` 文件,然后在命令行中输入以下命令:

g++ -o armstrong armstrong.cpp
./armstrong

结论

在本文中,我们学习了如何编写一个 C++ 程序来查找两个整数之间的所有阿姆斯特朗数。我们通过定义一个名为
“`isArmstrong“` 的函数来检查某个数是否为阿姆斯特朗数,并将其用在另一个名为 “`findArmstrong“` 的函数中来查找两个整数之间的所有阿姆斯特朗数。通过这个简单的程序,我们可以了解到算法实现的基本思路,并且能够更加熟练地使用 C++ 语言来进行编程。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 示例