📅  最后修改于: 2023-12-03 15:00:12.260000             🧑  作者: Mango
Armstrong数,也称为自恋数或水仙花数,是指一个n位数(n≥3),它的每个位上的数字的n次方之和等于它本身。例如,1^3 + 5^3 + 3^3 = 153。
在C语言中,我们可以编写程序来判断一个数是否是Armstrong数。以下是实现Armstrong数的C代码示例:
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, sum = 0, n = 0, remainder;
printf("Enter an integer: ");
scanf("%d", &num);
originalNum = num;
// 求出该数的位数
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
// 计算每个位上的数字的n次方之和
while (originalNum != 0) {
remainder = originalNum % 10;
sum += pow(remainder, n);
originalNum /= 10;
}
// 判断是否是Armstrong数
if (sum == num) {
printf("%d is an Armstrong number.", num);
} else {
printf("%d is not an Armstrong number.", num);
}
return 0;
}
代码中,我们首先从用户输入获取一个整数,然后通过 while 循环计算该数的位数。接着,我们再次将原始数值赋值给变量 originalNum,通过 while 循环计算每个位上的数字的n次方之和。最后,我们使用 if 语句判断计算出来的和是否等于原始的数值,从而判断该数是否是Armstrong数。
以上就是一个简单的C语言程序,用来判断一个数是否是Armstrong数。我们可以通过在不同的数值上运行此程序来测试其正确性,并学习如何使用C语言进行数学计算和逻辑判断。