如何用C语言编写一个计算并检测水仙花数(即一个n位数,其每个位上的数字n次方和等于该数本身)的程序?
时间: 2025-01-17 14:06:16 浏览: 70
编写一个计算并检测水仙花数的C语言程序可以通过以下步骤实现:
1. 获取用户输入的数字。
2. 计算数字的位数。
3. 将数字分解为各个位上的数字。
4. 计算每个位上数字的n次方和。
5. 比较计算结果与原数字是否相等。
以下是一个示例代码:
```c
#include <stdio.h>
#include <math.h>
// 函数声明
int isNarcissistic(int num);
int main() {
int num;
printf("请输入一个整数: ");
scanf("%d", &num);
if (isNarcissistic(num)) {
printf("%d 是一个水仙花数。\n", num);
} else {
printf("%d 不是一个水仙花数。\n", num);
}
return 0;
}
// 判断一个数是否是水仙花数
int isNarcissistic(int num) {
int originalNum, remainder, result = 0, n = 0;
originalNum = num;
// 计算数字的位数
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
// 计算每个位上数字的n次方和
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 比较计算结果与原数字是否相等
return (result == num);
}
```
这个程序首先获取用户输入的数字,然后通过`isNarcissistic`函数判断该数字是否是水仙花数。`isNarcissistic`函数首先计算数字的位数,然后计算每个位上数字的n次方和,最后比较计算结果与原数字是否相等。
阅读全文
相关推荐

















