用c语言判断一个三位数是否是水仙花数
时间: 2024-12-14 11:24:24 浏览: 26
在C语言中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身的数字。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个简单的函数,用于判断一个输入的三位数是否是水仙花数:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_armstrong_number(int num) {
int original_num, remainder, sum = 0;
// 将数字转换为字符串以便处理每一位
char str[4];
sprintf(str, "%d", num);
// 检查是否为三位数
if (strlen(str) != 3) {
return false;
}
original_num = atoi(str); // 转回整数
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 (is_armstrong_number(input)) {
printf("%d 是一个水仙花数。\n", input);
} else {
printf("%d 不是水仙花数。\n", input);
}
return 0;
}
```
阅读全文