c语言水仙花数问题怎么解决

avatar
作者
筋斗云
阅读量: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次幂之和。最后,通过条件判断来确定结果是否等于原始输入数字,从而确定是否为水仙花数。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!