#include<stdio.h>intmain(void){printf("水仙花个数:\n");int n;scanf("%d",&n);if(n >=100&& n <1000){int h,t,s;
h = n /100;
t = n %100/10;
s = n %10;if(h * h * h + t * t * t + s * s * s == n){printf("%d是",n);}else{printf("%d不是",n);}}else{printf("请重新输入:");}return0;}
方法2。采用数学库中的pow()函数进行求幂,遍历所有3位数,打印水仙花数。
#include<stdio.h>#include<math.h>intmain(void){printf("水仙花个数:\n");for(int n =100;n <1000;n++){int h = n /100;// 百位数 int t =(n-h*100)/10;// 十位数 int s = n %10;// 个位数 if(n ==pow(h,3)+pow(t,3)+pow(s,3)){printf("%d ",n);}}return0;}