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

   2025-02-13 3980
核心提示:水仙花数是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1的3次方+5的3次方+3的3次方

水仙花数是指一个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次幂之和。最后,通过条件判断来确定结果是否等于原始输入数字,从而确定是否为水仙花数。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言