写一个c语言函数判断一个整数是不是阿姆斯特朗数
时间: 2024-10-22 10:26:57 浏览: 36
阿姆斯特朗数是指一个n位正整数,其各个位上的数字的n次方之和等于它本身。例如,153是一个3位阿姆斯特朗数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个C语言函数,用于检查一个整数是否为阿姆斯特朗数:
```c
#include <stdio.h>
#include <math.h>
int isArmstrong(int num) {
int digits[10], sum = 0, n = 0;
// 计算位数
while (num > 0) {
digits[n] = num % 10;
num /= 10;
n++;
}
// 计算每一位的n次方并加总
for (int i = 0; i < n; i++) {
int power = pow(digits[i], n);
sum += power;
}
// 如果总和等于原数,则它是阿姆斯特朗数
if (sum == num)
return 1; // 返回1表示是阿姆斯特朗数
else
return 0; // 否则返回0
}
int main() {
int input;
printf("请输入一个整数:");
scanf("%d", &input);
if (isArmstrong(input))
printf("%d 是阿姆斯特朗数\n", input);
else
printf("%d 不是阿姆斯特朗数\n", input);
return 0;
}
```
阅读全文