用c语言编写一个函数,判断某一个数是否为水仙花数。(水仙花数:一个三位数的各位数字的立方和等于该数本身)的数据分析和算法分析
时间: 2024-05-03 18:22:33 浏览: 121
数据分析:
输入:一个三位数n;
输出:若该数为水仙花数,返回1,否则返回0。
算法分析:
1. 首先判断输入的数是否为三位数,若不是则直接返回0;
2. 将该数的各个位上的数字取出,分别计算它们的立方和,判断是否等于该数本身;
3. 若等于,则返回1,否则返回0。
代码实现:
```c
#include <stdio.h>
#include <math.h>
int isNarcissistic(int n) {
if (n < 100 || n > 999) { // 判断是否为三位数
return 0;
}
int a = n / 100;
int b = n / 10 % 10;
int c = n % 10;
int sum = pow(a, 3) + pow(b, 3) + pow(c, 3);
if (sum == n) {
return 1;
} else {
return 0;
}
}
int main() {
int n;
printf("Please input a number: ");
scanf("%d", &n);
if (isNarcissistic(n)) {
printf("%d is a Narcissistic number.\n", n);
} else {
printf("%d is not a Narcissistic number.\n", n);
}
return 0;
}
```
阅读全文