如何用C语言实现一个检测数字是否为水仙花数的函数?
时间: 2024-10-28 21:12:19 浏览: 77
水仙花数(Narcissistic number)是指一个n位正整数等于其各个位上的数字的n次幂之和。例如,153是个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
在C语言中,你可以创建一个函数来检查一个给定的整数是否为水仙花数。以下是一个简单的实现:
```c
#include <stdio.h>
// 函数声明
int is_narcissistic(int 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;
}
// 实现水仙花数检查函数
int is_narcissistic(int num) {
int sum = 0, original_num, digit;
// 将数字分解并计算每个位的立方和
original_num = num;
while (num != 0) {
digit = num % 10;
sum += digit * digit * digit; // 对每一位求立方
num /= 10;
}
// 如果原始数和立方和相等,它是水仙花数
return sum == original_num;
}
```
这个`is_narcissistic`函数首先获取数字的每位,然后计算每个位的立方并将它们加起来。如果最后得到的结果与原数相同,那么该数就是水仙花数。
阅读全文