Java语言计算1000以内所有的水仙花数。代码怎么写出来的
/*
一个三位数,各个位的三次方求和,若值等于他本身,则称这个数为水仙花数。
*/
public class Shuixianhua {
public int min=100; //起始位
public int max=1000; //终止位
public int Is_Sxh(int num) {
int a[]=new int[3];
int sum=0;
a[0]=num/100; //取出百位
a[1]=(num%100)/10; //取出十位
a[2]=num%10; //取出个位
sum=a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]; //各位三次方求和
return sum;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Shuixianhua SXH=new Shuixianhua();
for(int i=SXH.min;i<SXH.max;i++)
{
if(i==SXH.Is_Sxh(i))
System.out.println(i+"是水仙花数");
}
}
}
private static void getNarcissus(int start, int end){
if(start < 0 || end < start)
return;
for(int i = start; i < end; i ++){
String strNum = i + "";
int[] numArr = splitNum(i,strNum.length());
int narcissus = 0;
for(int j = 0; j < numArr.length; j++){
narcissus += Math.pow(numArr[j],3);
}
if(i == narcissus){
System.out.println("narcissus:" + narcissus);
}
}
}
public static int[] splitNum(int num,int length){
int [] numArr = new int[length];
for(int i = length - 1,j = 0; i >= 0; i --,j++){
if(i == 0){
numArr[j] = num % 10;
break;
}
numArr[j] = (num / ((int)Math.pow(10,i))) % 10;
}
return numArr;
}