public class 水仙花数 {
public static void main(String[] args) {
//题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
//153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方
int count=0;
int n,c,m=0;
int i =100;
for(i=100;i<1000;i++){
String f=i+"";
//String substring(int beginIndex, int endIndex) Integer.parseInt(String s)返回此字符串指定索引范围之间的子字符串
n= Integer.parseInt(f.substring(0,1));
c= Integer.parseInt(f.substring(1,2)) ;
m= Integer.parseInt(f.substring(2,3)) ;
if(i==n*n*n+c*c*c+m*m*m){
System.out.println(i);
}
}
int a,sum; //表示100~999
int o,j,k;//分别表示百位、十位、各位
for(a=100;a<=999;a++){
o=a/100;
j=(a-o*100)/10;
k=a-o*100-j*10;
sum=o*o*o+j*j*j+k*k*k;
//java的运算符,立方要这样写,写成i^3这样,竟然运算不出来
//如果遇到高次的话可以使用循环算出来
if(sum==a)
{ System.out.println(sum);
}
}
}
}
//输出结果153 370 371 407