javastudy吧 关注:5贴子:374
  • 3回复贴,共1

1!+2!+3!+...+100!的程序

只看楼主收藏回复

先开始我原本以为这个算法很简单,就是一个递归+for循环就OK了.

其实算法就是这么简单.

但是最后的结果遇到了问题,因为结果实在太大了.以至于long都装不下(20!好象都装不下)

所以用到了BigInteger类,在java.math里面.以后遇到类似的问题就有代码可以参考了...

ps:学习编程切记不要眼高手低.

import java.math.*;

public class From1to100jiecheng {
BigInteger var(int n){        //递归求阶乘的方法
    if(n==1)
     return BigInteger.valueOf(n);
    return BigInteger.valueOf(n).multiply(var(n-1));      // n*var(n-1)
}
public static void main(String []args){
    BigInteger Sum=BigInteger.valueOf(0);
    From1to100jiecheng f1=new From1to100jiecheng();
    for(int n=1;n<=100;n++)
     Sum=Sum.add(f1.var(n));
    System.out.println("1!+2!+3!+...+100!="+Sum);
}
}


IP属地:北京1楼2008-04-22 11:35回复
    • 211.137.199.*
    应该不只是循环那么简单吧,用递归了吧


    2楼2008-04-23 07:26
    回复
      2026-01-13 23:21:56
      广告
      不感兴趣
      开通SVIP免广告
      递归求阶乘的方法
      写的很清楚啊


      IP属地:北京3楼2008-04-23 08:24
      回复
        大数值是一个特殊的对象,用起来自然不方便,运算都得用方法才能完成。不过能耐大


        4楼2008-04-24 19:31
        回复