判别一个数是否为水仙花数
时间: 2024-06-08 22:12:33 浏览: 121
JS判断一个数是否是水仙花数
水仙花数是指一个n位数(n≥3),其各个位上数字的n次方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
要判断一个数是否为水仙花数,可以按照以下步骤进行:
1. 获取输入的数,并将其转换为字符串形式。
2. 获取字符串的长度,记为n。
3. 将字符串每个字符转换为数字,并计算每个数字的n次方之和。
4. 将计算结果与输入的数进行比较,如果相等,则该数是水仙花数;反之,则不是水仙花数。
下面是一个示例的 C 代码实现:
```c
#include <stdio.h>
#include <math.h>
int isNarcissistic(int number) {
int sum = 0, temp, digit, n = 0;
temp = number;
// 计算输入数的位数
while (temp != 0) {
temp /= 10;
n++;
}
temp = number;
// 计算每个数字的 n 次方之和
while (temp != 0) {
digit = temp % 10;
sum += pow(digit, n);
temp /= 10;
}
// 判断是否为水仙花数
if (sum == number) {
return 1;
} else {
return 0;
}
}
int main() {
int number;
printf("请输入一个数:");
scanf("%d", &number);
if (isNarcissistic(number)) {
printf("%d 是一个水仙花数\n", number);
} else {
printf("%d 不是一个水仙花数\n", number);
}
return 0;
}
```
通过以上代码,我们可以判断一个输入的数是否为水仙花数。
阅读全文