◆ IRinsho BLOG / 04
头像
←返回列表 c语言学习 / 2026/10/22 / 求水仙花数
c语言学习2026/10/22

求水仙花数

水仙花数解释

所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方

案例代码

#include <stdio.h>  
#include <math.h>  
int sx(int a) {  
    int x ;  
    int y ;  
    int z ;  
    x=a%10;  
    y=(a/10)%10;  
    z=(a/100)%10;  
    int sum;  
    sum = pow(x,3)+pow(y,3)+pow(z,3);  
    return sum;  
}  
  
int main(void) {  
  
    int t;  
    scanf("%d",&t);  
    if (sx(t)==t) {  
        printf("%d\n",sx(t));  
    }  
    else if (sx(t)!= t) {  
        printf("no");  
    }  
  
    return 0;  
  
}

思路

一:先定义一个求解函数

int sx(int a) {  
    int x ;  
    int y ;  
    int z ;  
    x=a%10;  
    y=(a/10)%10;  
    z=(a/100)%10;  
    int sum;  
    sum = pow(x,3)+pow(y,3)+pow(z,3);  
    return sum;  
}  
$$其中 x=a%10 (求个位数字) y=(a/10)%10 (求十位数字) z=(a/100)%10 (求百位数字) 以此类推 $$

二:调用进行判断

    if (sx(t)==t) {  
        printf("%d\n",sx(t));  
    }  
    else if (sx(t)!= t) {  
        printf("no");  
    }