判断一个数是否为水仙花数,用c语言
时间: 2024-10-15 15:23:29 浏览: 28
判断一个数是否为水仙花数是指将这个数的每一位数字立方后再相加,如果得到的结果等于原数,那么该数就是水仙花数。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在C语言中,可以编写如下的函数来实现这个功能:
```c
#include <stdio.h>
#include <stdbool.h> // 添加这个头文件来使用bool类型
bool is narcissistic(int num) {
int sum = 0, temp;
// 将数字转换成字符串以便按位取值
char str[10];
sprintf(str, "%d", num);
// 计算每一位数字的立方
for (int i = 0; str[i] != '\0'; i++) {
temp = atoi(str[i] + "0"); // 把字符转为数字,并加上'0'是因为小数点前的'0'
sum += temp * temp * temp;
}
// 如果结果等于原始数,则返回true,否则返回false
return sum == num;
}
int main() {
int number;
printf("Enter a number to check if it's a Narcissistic number: ");
scanf("%d", &number);
if(is_narcissistic(number)) {
printf("%d is a Narcissistic number.\n", number);
} else {
printf("%d is not a Narcissistic number.\n", number);
}
return 0;
}
```
在这个代码中,我们首先获取用户输入的数字,然后检查它是否满足水仙花数的条件。`is_narcissistic`函数负责计算和比较。
阅读全文