📅  最后修改于: 2023-12-03 15:30:15.818000             🧑  作者: Mango
阿姆斯壮数又称狄利克雷数、自恋数或超完全数字不变数,是指一N位数的每个数位上的数字的N次幂之和等于该数本身。例如,1^3 + 5^3 + 3^3 = 153,因此153是一个三位数的阿姆斯壮数。
以下是检查阿姆斯壮数的C程序:
#include <stdio.h>
#include <math.h>
int main()
{
int n, originalNum, num, remainder, result = 0, digits = 0;
printf("请输入一个整数:");
scanf("%d", &n);
originalNum = n;
// 计算该数的位数
while (originalNum != 0) {
digits++;
originalNum /= 10;
}
originalNum = n;
// 计算每个数位上的N次幂之和
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, digits);
originalNum /= 10;
}
// 判断是否为阿姆斯壮数
if (result == n) {
printf("%d 是一个阿姆斯壮数。\n", n);
}
else {
printf("%d 不是一个阿姆斯壮数。\n", n);
}
return 0;
}
digits
变量中。pow()
函数计算出该整数的每个数位上的N次幂之和,并将其保存在result
变量中。result
是否等于原始的输入整数n
,如果相等则输出该整数是一个阿姆斯壮数,否则输出该整数不是一个阿姆斯壮数。阿姆斯壮数是一种特殊的数字,其每个数位上的N次幂之和等于该数字本身。通过使用C语言的循环、取余和幂运算等操作,我们可以检查输入的整数是否为阿姆斯壮数。