用c语音编写一个函数判断一个数是否为水仙花数
时间: 2023-06-12 08:04:13 浏览: 139
C语言程序设计-调用函数fun判断一个三位数是否水仙花数;在main函数中从键盘输入一个三位数,并输出判断结果
5星 · 资源好评率100%
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。
例如:1^3 + 5^3 + 3^3 = 153
下面是用C语言编写的判断一个数是否为水仙花数的函数:
```c
#include <stdio.h>
#include <math.h>
int isNarcissisticNumber(int num)
{
int n = 0, temp = num, sum = 0;
// 计算num的位数
while (temp > 0) {
temp /= 10;
n++;
}
temp = num;
// 计算每个位上数字的n次方之和
while (temp > 0) {
int digit = temp % 10;
sum += pow(digit, n);
temp /= 10;
}
// 判断是否为水仙花数
if (sum == num) {
return 1; // 是水仙花数
} else {
return 0; // 不是水仙花数
}
}
int main()
{
int num;
printf("请输入一个数字:");
scanf("%d", &num);
if (isNarcissisticNumber(num)) {
printf("%d是水仙花数\n", num);
} else {
printf("%d不是水仙花数\n", num);
}
return 0;
}
```
该程序先计算出num的位数n,然后依次计算num的每一位的n次方之和sum,最后判断sum是否等于num,如果相等就说明num是水仙花数,否则就不是。
阅读全文