这类问题太多了.使用BigInteger类来计算.
这个类使用很简单,查看一下api帮助文档吧.

解决方案 »

  1.   

    Math.pow(n,n)   求和后判断是否超出了long的表示范围,可用double
      

  2.   

    二楼说的应该对吧,
    如果超出long,怎么循环递归也没用啊,楼上好像理解错了
      

  3.   

    初学JAVA,水平不够。
    能给出原代码吗?
      

  4.   

    回复人: yulin001122() ( ) 信誉:100  2005-04-13 16:32:00  得分: 0  
     
     
       楼上的有没有学过计算机啊
    受不了了。。
    ======================================================================
    你什么意思?说我吗?学过几天计算机就了不起了?
    你有本事用double算出这题的精确答案出来!
    假如要算到200呢?doubule还能算吗?使用biginteger的代码如下:import java.math.BigInteger;public class Power {
      public static String calculateBigInteger(int max){
        if(max <= 0){
          return "输入参数错误!";
        }
        BigInteger ret = new BigInteger("1");
        for(int i=2; i<=max; i++){
          BigInteger current = new BigInteger(Integer.toString(i));
          ret = ret.add(current.pow(i));
        }
        return ret.toString();
      }  public static void main(String[] args){
        System.out.println(Power.calculateBigInteger(20)); 
      }
    }答案为:106876212200059554303215024
     
      

  5.   

    我不是说你 
    我说要用DOUBLE那些人
      

  6.   

    回复人: yulin001122() ( ) 信誉:100  2005-04-14 15:14:00  得分: 0  
     
     
       我不是说你 
    我说要用DOUBLE那些人
      
    ======================================================
    呵呵,误会.
    不过也不能说"有没有学过计算机啊",特别是象我这种没有学过计算机的人,比较敏感的:)