用C语言编译.判断-一个数是否是水仙花数
时间: 2024-10-25 18:03:14 浏览: 22
水仙花数c语言源码.zip
水仙花数是指那些所有位数字的立方和等于其本身三位数的正整数,例如153(1^3 + 5^3 + 3^3 = 153)。在C语言中判断一个数是否是水仙花数,可以编写如下的函数:
```c
#include <stdio.h>
#include <stdbool.h>
bool isArmstrong(int num) {
int original_num, remainder, sum = 0;
if (num < 10) { // 防止单个位数的情况
return num == (int)(pow(num, 3));
}
original_num = num;
while (original_num != 0) {
remainder = original_num % 10;
sum += pow(remainder, 3); // 计算每位立方并累加
original_num /= 10;
}
return sum == num; // 返回结果,如果相等则是水仙花数
}
int main() {
int input;
printf("请输入一个三位数:");
scanf("%d", &input);
if (isArmstrong(input)) {
printf("%d 是水仙花数\n", input);
} else {
printf("%d 不是水仙花数\n", input);
}
return 0;
}
```
这个程序首先检查输入是否为三位数,然后计算每个位的立方并求和,最后比较原始数值和计算得到的和是否相等。
阅读全文