java实现找出所有的水仙花数。
import java.util.HashMap;class FindNarcissisticNumber { private HashMap<String, Long> libHashMap=new HashMap<String, Long>();public void store(int n){for(int i=0;i<10;i++){long count=1;for(int j=1;j<=n;j++){count=count*i;}libHashMap.put(i+"", count);//System.out.println(i*i*i);}}public void find(int n){int minNumber=1;int maxNumber=9;for(int i=1;i<n;i++){minNumber=minNumber*10;maxNumber=maxNumber*10+9;}//System.out.println("minNumber="+minNumber);//System.out.println("maxNumber="+maxNumber);for(int i=minNumber;i<=maxNumber;i++){String iString=String.valueOf(i);//System.out.println(iString);long total=0;for(int p=0;p<n;p++){ total=total+libHashMap.get(String.valueOf(iString.charAt(p)));}//System.out.println("total="+total+" &&&&&&&&& i="+i);if(total==i){System.out.println("I hava find one:======>>"+i);}}}public void findFlower(int n){for(int i=1;i<=n;i++){this.store(i);this.find(i);}}public static void main(String[] args) { FindNarcissisticNumber fnb=new FindNarcissisticNumber();fnb.findFlower(10);}}