C程序检查阿姆斯特朗数
在此示例中,您将学习检查用户输入的整数是否是Armstrong数字。
要理解此示例,您应该了解以下C语言编程主题:
如果满足以下条件,则一个正整数称为阿姆斯特朗数(n阶),如果
abcd... = an + bn + cn + dn +
对于3位的阿姆斯特朗数,每个数字的立方数之和等于数字本身。 例如,153是Armstrong的数字,因为153 = 1*1*1 + 5*5*5 + 3*3*3
检查三位的阿姆斯特朗数#include
int main() {
int num, originalNum, remainder, result = 0;
printf("输入一个三位数的整数: ");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0) {
// 余数
remainder = originalNum % 10;
result += remainder * remainder * remainder;
//从原始数字中去除最后一位数
originalNum /= 10;
}
if (result == num)
printf("%d 是一个阿姆斯特朗数。", num);
else
printf("%d 不是一个阿姆斯特朗数。", num);
return 0;
}
输出结果输入一个三位数的整数: 371
371 是一个阿姆斯特朗数。
检查n位的阿姆斯特朗数#include
#include
int main() {
int num, originalNum, remainder, n = 0;
float result = 0.0;
printf("输入一个整数: ");
scanf("%d", &num);
originalNum = num;
//将num的位数存储在n中
for (originalNum = num; originalNum != 0; ++n) {
originalNum /= 10;
}
for (originalNum = num; originalNum != 0; originalNum /= 10) {
remainder = originalNum % 10;
// 存储结果中每个数字的幂的和
result += pow(remainder, n);
}
// 如果num等于result,则该数字为阿姆斯壮数字
if ((int)result == num)
printf("%d 是一个阿姆斯特朗数。", num);
else
printf("%d 不是一个阿姆斯特朗数。", num);
return 0;
}
输出结果输入一个整数: 1634
1634 是一个阿姆斯特朗数。
在此程序中,首先计算一个整数的位数,并将其存储在n中。 并且,pow()函数用于计算第二个for循环的每次迭代中各个数字的幂。