水仙花数 = 个位的立方 + 十位的立方 + 百位的立方;
判断是不是水仙花数:
#include <stdio.h>
int main(int argc, const char *argv[])
{
int n;
printf("输入一个100-999的数:\n");
scanf("%d",&n);
if(999 < n&& n < 100){
printf("输入不合理\n");
}
int q, w ,e ;
q = n/100;
w = n/10%10;
e = n%10;
if(q*q*q+w*w*w+e*e*e== n){
printf("%d是一个水仙花数\n",n);
}
else {
printf("%d 不是 水仙花\n",n);
}
return 0;
}
打印出100-999的水仙花数:
方法一:
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i;
int a,b,c;
printf("100-999的水仙花数为:\n");
for(i = 100;i < 999; i++ ){
a = i/100; //百位数字
b = i/10%10; //十位数字
c = i%10; //个位数字
if(a*a*a + b*b*b + c*c*c == i){
printf("%d\n",i);
}
}
return 0;
}
方法二:
#include<stdio.h>
int main(int argc, const char *argv[])
{
int g, s,b;
int value = 100;
while( value <=999 ){
b = value / 100;
g = value%10;
s = value/10%10;
if(value == g*g*g + b*b*b +s*s*s){
printf("水仙花数为:%d\n",value);
}
value++;
}
return 0;
}