百科知识

c语言用函数判断水仙花数,用C语言编写函数来检测一个数是否是水仙花数

水仙花数也被称为阿姆斯特朗数,它是一个n位数,其每个位上的数字的n次幂之和等于它自己。例如,一个三位的水仙花数如 153,其中 1 的三次方加上 5 的三次方再加上 3 的三次方等于 153。这是一个很有趣的数学问题,我们可以使用 C 语言来解决这个问题。下面是一个函数,用来判断一个数是否为水仙花数:

c

include

include // 为了使用pow函数

// 判断是否为水仙花数的函数

int isNarcissisticNumber(int num) {

int originalNum = num; // 保存原始数字以便后面使用

int remainder = 0; // 存储取余的结果

int sum = 0; // 存储幂的和

int n = 0; // 数字的位数

while (num != 0) { // 计算数字的位数

remainder = num % 10; // 获取最后一位数字

sum += pow(remainder, n); // 计算当前数字的n次幂并累加

num /= 10; // 删除最后一位数字

n++; // 数字位数增加

}

return sum == originalNum && n == (int)log10(originalNum) + 1; // 判断是否为水仙花数并返回结果

}

int main() {

int num; // 待检测的数字

printf(“请输入一个数字:”);

scanf(“%d”, &num); // 从用户获取输入的数字

if (isNarcissisticNumber(num)) { // 如果这个数字是水仙花数

printf(“%d 是一个水仙花数。”, num); // 输出结果

} else { // 如果这个数字不是水仙花数

printf(“%d 不是一个水仙花数。”, num); // 输出结果

}

return 0; // 程序结束

}

这个程序首先定义了一个函数 `isNarcissisticNumber` 来判断一个数字是否是水仙花数。然后,在 `main` 函数中,我们从用户获取输入的数字,并使用 `isNarcissisticNumber` 函数来判断这个数字是否是水仙花数。如果是,我们就输出这个数字是一个水仙花数,否则输出这个数字不是一个水仙花数。这个程序使用了 C 语言的基本输入输出函数和数学函数来实现这个功能。