介绍
在本实验中,我们将学习如何在 C++ 中检查一个数字是否是 Armstrong 数(阿姆斯壮数)。Armstrong 数是指一个数字等于其每个数字的位数次幂之和。这是一个简单的程序,可以帮助你练习 C++ 编程技能。
在本实验中,我们将学习如何在 C++ 中检查一个数字是否是 Armstrong 数(阿姆斯壮数)。Armstrong 数是指一个数字等于其每个数字的位数次幂之和。这是一个简单的程序,可以帮助你练习 C++ 编程技能。
我们将使用以下命令在 ~/project
目录下创建一个名为 main.cpp
的新文件:
touch ~/project/main.cpp
在这一步中,我们将包含必要的库。
#include <iostream>
#include <cmath>
using namespace std;
iostream
库用于处理输入/输出流,而 cmath
库则提供了数学运算的功能。
在这一步中,我们将定义 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++ 编程技能。