判断整数m是不是水仙花数:输入一个位数不多于10位的正整数m,判断m是不是水仙花数。 水仙花数:例如输入的m是一个5位数,如果个、十、百、千、万的5次方和等于m,则m是一个5位水仙花数。用c语言编写
时间: 2024-11-03 12:17:42 浏览: 17
判断一个整数是否是水仙花数(也称为 narcissistic number 或 pluperfect digital invariant),可以使用三重循环来计算各个位数的立方和,然后将这个和与原数字比较。以下是使用 C 语言的一个简单示例:
```c
#include <stdio.h>
int is_narcissistic(int num) {
int digits[10], len = 0; // 存储每一位的临时数组和长度
while (num > 0) {
digits[len++] = num % 10;
num /= 10;
}
int sum = 0;
for (int i = 0; i < len; i++) {
sum += pow(digits[i], 3); // 计算每个位的立方并累加
}
return sum == num;
}
int main() {
int m;
printf("请输入一个不超过10位的正整数: ");
scanf("%d", &m);
if (is_narcissistic(m)) {
printf("%d 是一个水仙花数。\n", m);
} else {
printf("%d 不是水仙花数。\n", m);
}
return 0;
}
```
在这个程序中,首先获取用户输入的数字`m`,然后通过`is_narcissistic`函数检查它是否满足水仙花数的条件。该函数通过遍历每一位,并计算其立方,最后比较这个和是否等于原始数字。
阅读全文