阅读量:0
水仙花数是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1的3次方+5的3次方+3的3次方等于153。
要解决C语言的水仙花数问题,可以使用循环和条件判断来判断每个数是否是水仙花数。以下是一种解决方案:
#include <stdio.h> #include <math.h> int main() { int num, originalNum, remainder, n = 0, result = 0; printf("输入一个正整数:"); scanf("%d", &num); originalNum = num; // 计算输入数字的位数 while (originalNum != 0) { originalNum /= 10; ++n; } originalNum = num; // 检查是否为水仙花数 while (originalNum != 0) { remainder = originalNum % 10; result += pow(remainder, n); originalNum /= 10; } if (result == num) printf("%d 是水仙花数。\n", num); else printf("%d 不是水仙花数。\n", num); return 0; }
这段代码中,首先通过循环计算输入数字的位数。然后使用循环和取余运算符来逐位计算数字的n次幂之和。最后,通过条件判断来确定结果是否等于原始输入数字,从而确定是否为水仙花数。