C语言,调用fun函数判断一个三位数是否为“水仙花数”
时间: 2025-01-01 20:36:51 浏览: 8
在C语言中,判断一个三位数是否为“水仙花数”(也叫纳西尔数),意味着这个数字等于其各个位数的立方之和。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是一个简单的C程序,定义了一个名为`is_narcissistic_number`的函数来检查输入的整数是否是水仙花数:
```c
#include <stdio.h>
// 定义函数来计算并检查是否为水仙花数
int is_narcissistic(int num) {
int digits[3]; // 用于存储每一位数字
int sum = 0;
// 将三位数转换成数组
if (num >= 100 && num <= 999) {
digits[0] = num / 100; // 百位
digits[1] = (num % 100) / 10; // 十位
digits[2] = num % 10; // 个位
// 计算每个位的立方然后加总
for (int i = 0; i < 3; i++) {
sum += pow(digits[i], 3);
}
// 如果sum等于原数,那么它就是水仙花数
return sum == num;
} else {
// 数字不是三位数,返回false
return 0;
}
}
int main() {
int number;
printf("请输入一个三位数:");
scanf("%d", &number);
if (is_narcissistic(number)) {
printf("%d是水仙花数。\n", number);
} else {
printf("%d不是水仙花数。\n", number);
}
return 0;
}
```
阅读全文