定义“水仙花数”:它是一个三位数,它的百、十、个位上的数的立方和等于该数本身。输入一个三位数,判断它是否是水仙花数。写出该问题的算法分析过程,并用C语言写代码
时间: 2024-12-21 08:23:05 浏览: 21
"水仙花数"是指一个三位数,其各位数字的三次方之和等于该数本身的特性。例如,153是个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。算法分析过程如下:
- 输入一个三位数,先检查是否满足三位数的要求。
- 分别提取出这个数的百位、十位和个位数字。
- 计算这三个数字分别立方后的总和。
- 比较计算出的总和是否与原数相等,如果相等,则是水仙花数,反之则不是。
下面是用C语言实现的代码:
#include <stdio.h>
#include <stdbool.h> // 引入bool类型
// 函数用于判断是否为水仙花数
bool is narcissistic_number(int num) {
int hundreds = num / 100; // 百位数
int tens = (num % 100) / 10; // 十位数
int ones = num % 10; // 个位数
int sum_of_cubes = hundreds * hundreds * hundreds + tens * tens * tens + ones * ones * ones;
return (sum_of_cubes == num);
}
int main() {
int input;
printf("请输入一个三位数:");
scanf("%d", &input);
if (input >= 100 && input <= 999) {
bool result = is_narcissistic_number(input);
if (result) {
printf("%d 是水仙花数\n", input);
} else {
printf("%d 不是水仙花数\n", input);
}
} else {
printf("输入无效,请输入一个三位数\n");
}
return 0;
}
相关推荐



















