如何用C语言实现水仙花数(Narcissistic Number)的判断?
时间: 2024-12-08 17:16:42 浏览: 89
水仙花数是一个特殊的数字特性,它的每个位上的数字的立方和等于它本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在C语言中,你可以通过以下步骤来判断一个整数是否是水仙花数:
- 定义一个函数,比如
isNarcissistic(int num)
,接收一个整数作为输入。 - 计算这个数每一位的立方。
- 检查每位立方之和是否等于原数。如果相等,则返回true,表示是水仙花数;否则,返回false。
以下是简单的C代码实现:
#include <stdio.h>
#include <math.h>
int isNarcissistic(int num) {
int sum = 0;
int original_num = num;
// 分解成每一位
while (num > 0) {
int digit = num % 10;
sum += pow(digit, 3); // 立方并累加到sum上
num /= 10;
}
// 如果原始数等于其各位立方和,则是水仙花数
return (original_num == sum);
}
int main() {
int number;
printf("请输入一个整数: ");
scanf("%d", &number);
if (isNarcissistic(number)) {
printf("%d 是水仙花数\n", number);
} else {
printf("%d 不是水仙花数\n", number);
}
return 0;
}
相关推荐

















