用c语言,所谓的水仙花数是指一个n位数(n>=3 &&n<=7) ,它的每个位上的数字n次幂之和等于本身。 例如,3位数153是水仙花,各位数字的立方和13+5³ +3 =153
时间: 2024-12-12 16:21:31 浏览: 23
在 C 语言中,判断一个数是否为水仙花数可以采用循环遍历每一位数字,并计算其立方,然后累加求和,最后比较这个和是否等于原数。以下是简单的步骤:
1. 定义一个函数 `is narcissistic(num)`,它接收一个整数作为参数。
2. 计算每一位的数字并取立方。可以借助取模运算 `%` 来得到个位数,除法 `/` 取出十位和百位等。
3. 将每位立方相加,累加到变量 `sum` 中。
4. 检查 `sum` 是否等于原始输入的 `num`,如果相等则返回 `true`,表示是水仙花数;否则返回 `false`。
```c
#include <stdio.h>
int cube(int digit) {
return digit * digit * digit;
}
bool is_narcissistic(int num) {
int original_num = num;
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += cube(digit);
num /= 10; // 移除个位
}
// 如果原始数值和累加后的和相等,则是水仙花数
return sum == original_num;
}
int main() {
int number;
printf("请输入一个3到7位的数字: ");
scanf("%d", &number);
if (is_narcissistic(number)) {
printf("%d 是水仙花数.\n", number);
} else {
printf("%d 不是水仙花数.\n", number);
}
return 0;
}
```
阅读全文