在 C++ 中检查 Armstrong 数

C++C++Beginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将学习如何在 C++ 中检查一个数字是否是 Armstrong 数(阿姆斯壮数)。Armstrong 数是指一个数字等于其每个数字的位数次幂之和。这是一个简单的程序,可以帮助你练习 C++ 编程技能。

包含必要的库

我们将使用以下命令在 ~/project 目录下创建一个名为 main.cpp 的新文件:

touch ~/project/main.cpp

在这一步中,我们将包含必要的库。

#include <iostream>
#include <cmath>
using namespace std;

iostream 库用于处理输入/输出流,而 cmath 库则提供了数学运算的功能。

定义 main() 函数

在这一步中,我们将定义 main() 函数。

int main() {
    // code here
    return 0;
}

main 函数是程序的入口点。所有需要执行的代码都必须写在这个函数中。

声明并初始化变量

在这一步中,我们将声明并初始化程序所需的变量。

int num, originalNumber, remainder, result = 0, n = 0;
  • num 是输入的数字
  • originalNumber 是未经修改的输入数字
  • remainder 存储输入数字的最后一位
  • result 存储 Armstrong 计算的结果
  • n 用于确定输入数字的位数

获取用户输入

在这一步中,我们将从用户那里获取输入值。

cout << "Enter a positive integer: ";
cin >> num;

这段代码从用户那里获取输入并将其存储在变量 num 中。

确定输入数字的位数

在这一步中,我们将确定输入数字的位数。

originalNumber = num;

// count number of digits
while (originalNumber != 0) {
    originalNumber /= 10;
    ++n;
}

这段代码用于计算输入数字的位数,并将结果存储在变量 n 中。

计算结果

在这一步中,我们将计算 Armstrong 数的结果。

originalNumber = num;

while (originalNumber != 0) {
    remainder = originalNumber % 10;
    result += pow(remainder, n);
    originalNumber /= 10;
}

这段代码遍历输入数字的每一位,并执行 Armstrong 数的计算。结果存储在变量 result 中。

检查结果

在这一步中,我们将检查输入数字是否是 Armstrong 数。

if (result == num)
    cout << num << " is an Armstrong number";
else
    cout << num << " is not an Armstrong number";

这段代码输出程序的结果。如果结果等于输入数字,则输入数字是 Armstrong 数;否则,它不是。

要在终端中运行代码:

g++ main.cpp -o main && ./main

总结

在本实验中,我们学习了如何检查一个数字是否是 Armstrong 数。我们使用了 cmath 库来执行完成此任务所需的计算。我们还学习了如何遍历数字的每一位并计算其位数。通过这个基础程序,你可以进一步提升你的 C++ 编程技能。

您可能感兴趣的其他 C++ 教程