c语言如何求阿姆斯特朗
时间: 2024-10-13 17:01:50 浏览: 94
阿姆斯特朗数是指一个n位正整数,其各位数字的n次幂之和等于该数本身。例如,153是一个3位数,它的每个数字的3次幂之和(1^3 + 5^3 + 3^3 = 153)等于它自身。
以下是C语言中计算阿姆斯特朗数的基本步骤:
1. 定义一个函数,比如`isArmstrong(int num, int n)`,接受一个整数`num`和它的位数`n`作为参数。
2. 计算每一位的数值并取幂,然后累加到总和`sum`中。
3. 检查`num`是否等于`sum`,如果相等,则返回true,表示它是阿姆斯特朗数;否则返回false。
以下是简单的C代码示例:
```c
#include <stdio.h>
// 判断是否为阿姆斯特朗数的函数
int isArmstrong(int num, int n) {
int digits[n], sum = 0;
int original_num = num;
// 将数字拆分成数组digits
while (original_num > 0) {
digits[--n] = original_num % 10; // 取最后一位
original_num /= 10;
}
// 求每位数字的n次幂,并累加到sum
for (int i = 0; i < n; i++) {
sum += pow(digits[i], n);
}
return num == sum; // 如果sum等于原数,说明是阿姆斯特朗数
}
int main() {
int num, n = 3; // 阿姆斯特朗数通常是3位的,这里可以改为用户输入
printf("请输入一个三位数:");
scanf("%d", &num);
if (isArmstrong(num, n)) {
printf("%d 是阿姆斯特朗数\n", num);
} else {
printf("%d 不是阿姆斯特朗数\n", num);
}
return 0;
}
```
阅读全文