如何用c语言判断一个数是否水仙花数
时间: 2024-11-13 07:26:48 浏览: 26
在C语言中,判断一个数是否是水仙花数( Narcissistic Number),也被称为自恋数,可以通过将数字的每一位数字立方后再相加,如果得到的结果等于原数本身,则该数为水仙花数。以下是简单的步骤:
1. 定义一个函数 `is_narcissistic` 接受一个整数作为输入。
2. 将输入数字分解为各个位上的数字,可以使用除法和取余操作 (`%`) 来获取每一位。
3. 对每个位上的数字计算其立方。
4. 计算所有位上数字立方之和。
5. 检查这个和是否等于原始输入。
下面是一个简单的C程序示例:
```c
#include <stdio.h>
int cube(int num) {
return num * num * num;
}
int is_narcissistic(int n) {
int sum = 0, temp;
// 分解数字并求立方和
while (n > 0) {
temp = n % 10; // 取最后一位
sum += cube(temp); // 立方并累加
n /= 10; // 移除最后一位
}
// 判断是否等于原数
if (sum == n)
return 1; // 水仙花数
else
return 0; // 非水仙花数
}
int main() {
int num;
printf("请输入一个数字:");
scanf("%d", &num);
if (is_narcissistic(num))
printf("%d 是水仙花数\n", num);
else
printf("%d 不是水仙花数\n", num);
return 0;
}
```
阅读全文