用c语言水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=111+555+333。
时间: 2024-11-20 21:38:35 浏览: 12
C语言水仙花:水仙花数的求法输入一个数求它是否是水仙花数
水仙花数( Narcissistic Number 或者 Pluperfect Digital Invariant)是指那些每一位数字的三次幂之和等于原数本身的正整数。在C语言中,判断一个数是否为水仙花数通常会通过循环结构计算每个位数的立方,然后将它们相加并比较结果。下面是一个简单的C程序示例,用于检查一个三位数是否为水仙花数:
```c
#include <stdio.h>
#include <stdbool.h>
bool isNarcissistic(int num) {
int digits[4], sum = 0;
// 将数字分解为三个位
if (num < 100 || num > 999) return false;
while (num > 0) {
digits[3] = num % 10; // 取最后一位
num /= 10;
for (int i = 0; i < 3 && digits[i] != 0; i++) { // 计算立方并累加
sum += digits[i] * digits[i] * digits[i];
}
}
// 如果所有的位立方和等于原数,则返回true
return sum == num;
}
int main() {
int input;
printf("请输入一个三位数: ");
scanf("%d", &input);
if (isNarcissistic(input)) {
printf("%d 是一个水仙花数.\n", input);
} else {
printf("%d 不是水仙花数.\n", input);
}
return 0;
}
```
阅读全文