java实现找出所有的水仙花数。

2014-11-24 09:26:34 · 作者: · 浏览: 0
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
在没有考虑效率的情况下。写出了以下的实现方式。参数为n,表示你想找多少位以内的水仙花数。如果不考虑Long类型的上限导致数据截断的话,理论上可以找出所有的。
 
import java.util.HashMap;  
class FindNarcissisticNumber {  
    private HashMap libHashMap=new HashMap();  
    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
>"+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); } }