📅  最后修改于: 2023-12-03 14:58:39.335000             🧑  作者: Mango
阿姆斯特朗编号是指一个 $n$ 位数,它每个位上数字的 $n$ 次幂之和等于它本身。例如,$153$ 可以被称为阿姆斯特朗编号,因为 $1^3 + 5^3 + 3^3 = 153$。
我们可以编写一个C/C++程序来检查一个给定的数字是否是阿姆斯特朗编号。
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, n = 0;
float result = 0.0;
// 输入一个整数
printf("Enter an integer: ");
scanf("%d", &num);
// 检查数字的位数
originalNum = num;
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
// 计算每个数字的n次幂之和
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 检查数字是否为阿姆斯特朗编号
if ((int)result == num)
printf("%d is an Armstrong number.", num);
else
printf("%d is not an Armstrong number.", num);
return 0;
}
此程序接受一个整数作为输入,并计算该数字是否为阿姆斯特朗编号。
程序首先检查数字的位数,然后将数字的每个数字的n次幂之和计算出来。最后,程序将计算出的总和与原始数字进行比较,以确定是否为阿姆斯特朗编号。
在上面的程序中,我们使用了几个C/C++的标准库函数。
printf()
函数用于打印输出结果。scanf()
函数用于读取输入数字。pow()
函数用于计算一个数字的 n 次幂。这个C/C++程序演示了如何检查一个数字是否为阿姆斯特朗编号。阅读并理解此程序的结构和关键代码行将有助于您理解基本的C/C++编程技术。