📅  最后修改于: 2023-12-03 15:00:13.281000             🧑  作者: Mango
阿姆斯壮数字(Armstrong number),又称自恋数、自幂数、水仙花数,指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个阿姆斯壮数字,因为153=1³+5³+3³。
使用循环可以实现检查一个数是否为阿姆斯壮数字。首先,需要确定数的位数。然后,按位分离出每个数字,计算每个数字的n次幂并加起来。最后,将结果与原数比较,相等则为阿姆斯壮数字。
示例代码如下:
int num, originalNum, remainder, result = 0, n = 0;
printf("请输入一个整数: ");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0)
{
originalNum /= 10;
++n;
}
originalNum = num;
while (originalNum != 0)
{
remainder = originalNum % 10;
// 计算每个位上数字的n次幂
result += pow(remainder, n);
originalNum /= 10;
}
if (result == num)
printf("%d 是阿姆斯壮数字", num);
else
printf("%d 不是阿姆斯壮数字", num);
通过以上代码,我们可以检查一个数是否为阿姆斯壮数字。这个程序使用了循环和数学运算,可以帮助我们更好地理解这个问题。