编写一个Java程序,计算1!+2!+...从第100项到第200项之和 谢谢高手们喽

如题所述

第1个回答  2011-03-12
算了吧。太大了。都已经大大超出long的最大值的。
public class MyTest1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long count=0;
MyTest1 myt=new MyTest1();
for(int i=1;i<=50;i++)//50都已经不行了,怎么算100到200呀
{
count+=myt.counts(i);
}
System.out.println(count);

}
long counts(int i)
{
if(i==1)
{
return 1;
}
else
{
return (long)(counts(i-1)*i);
}

}

}本回答被提问者采纳
第2个回答  2011-03-12
import java.math.BigInteger;

public class TestFactorialSum {

public static void main(String[] args) {
int n = 200;
BigInteger bi = new BigInteger("0");
for(int i=1;i<=n;i++)
bi = bi.add(factorial(i));

System.out.println(bi);
}

public static BigInteger factorial(int num) {
if(num == 1)
return new BigInteger("1");
else
return new BigInteger(num+"").multiply(factorial(num-1));
}
}
第3个回答  2011-03-12
这是大数求阶cheng,java上提供了一个BigInteger就是干这活的:如下。

import java.math.BigInteger;

/*
* 大数测试计算测试 。
* */
public class BigIntegerTest {
// 求每个数的阶乘 ;
public BigInteger jieCheng(int num){
BigInteger rs = new BigInteger("1") ;
for(int i=1 ;i<=num ;i++){
rs = rs.multiply(new BigInteger(i+""));
}
return rs;
}
// 求阶乘和;
public String bigCountSum(int sum){
BigInteger bs = new BigInteger("0");
for(int i=1;i<=sum;i++){
bs=bs.add(jieCheng(i)) ;
StringBuffer sb = new StringBuffer("") ;
}
return bs.toString() ;
}
public static void main(String[] args){
int i = 100 ;
System.out.println(new BigIntegerTest().bigCountSum(i));
}
}
楼上哥们说的对,long不可能存那么大的数,所以要用字符串处理。
第4个回答  2011-03-12
阶乘的计算使用递归方法;
计算结果使用文件存储(虽然性能不如内存,但是是大型计算实用的结果存储方式)。

编写一个Java程序,计算1!+2!+...从第100项到第200项之和 谢谢高手们喽...
return (long)(counts(i-1)*i);} } }

求解释简单Java程序,题目是: 计算1+2!+3!+4!...从第10项到第20项之和...
第一项 i=1 a=a*i; 于是 a=1 第二项 i=2 a=a*i; 于是,a在1的基础上,乘以2 第三项 i=3 a=a*i; 于是,a在 1*2的基础上,再乘以3 第四项 i=4 a=a*i; 于是,a在 1*2*3的基础上,再乘以4 ……第九项 i=9 a=a*i; a=9!第十项 i=10 ...

Java编程:计算1+1\/2+1\/3+1\/4+···+1\/n,加到多少项时,其和可超过10...
public static void main(String args[]) { double n=1;double sum=0;while(sum<10){ sum=sum+1\/n;System.out.println("n="+n);System.out.println("sum="+sum);n++;} System.out.println("加到第"+(n-1)+"项时满足sum>10");} } n=12367.0 sum=10.000043008275778 加到第123...

如何从零开始学习Java?
第四步,了解Java学习路线。是的,到这里开始,了解Java学习路线才有意义。就像我们读完了中学,再考虑选择专业才有意义。学好了JavaSE基础,其实你什么都干不了,写的程序也没有任何用处,Java基础知识需要和JavaWeb、前端、数据库搭配再一起才能做出真正实用程序。有谁刚入幼儿园就去考虑以后的发展路线...

电脑问题。求高手回答!
设置从硬盘启动,第一启动项 进行bios设置,按DEL进, 具体BIOS设置,不是很一样.自己找下.一般在BOIS的第3或者2项目里面如果想自己搞定,看下下面的教程吧...觉得麻烦..就随便找个略微明白电脑的人就能搞定开机按DEL 很多新手想超频,搞不懂BIOS。现详细介绍下!! 对于高手来说,几个数字就可以轻松完成超频。但是我...

请高手们帮兄弟一下,为什么我的电脑每次开机后没启用几个程序CPU...
2、svchost.exe造成CPU使用率占用100% 在win.ini文件中,在[Windows]下面,“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们。一般情况下,它们的等号后面什幺都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如...

求暗黑2亚马逊的攻略!!!
二、Javazon需要多少mana以及Javazon mana供应的解决办法 我在提这个问题的时候,实际上隐含了一个修饰短语,这个问题应该是:“Javazon需要多少mana才能足够使用LF?”是的,我不打算考虑使用其他技能需要多少mana,因为没有必要。 有些人建议把Javazon训练成女巫那样,也就是说,加很多energy。从技能上看,为了使用LF(20级...

求牧场物语矿石镇(女孩版)流程攻略。
收获后作物从回成熟阶段,一个周期要9天,一个卖60元.包心菜..三个阶段发芽阶段...4日生长..成熟阶段..5日结果阶段...5日收获后需要重新栽种,一个周期要14天,1个可卖250元(有钱还是考虑种它吧,不过第一年除非用金手指,否则还是第二年多种些,利润丰厚啊)草莓..三个阶段发芽..生长阶段..3日成熟阶段......

...解释下为什么。第一次玩弹药谢谢各位了 主要是手雷和 弹(爆炎...
一、花式: 1、膝撞\/20sp:【建议升级-5级】只要是玩过枪手的都知道,膝撞不是用来攻击的,只是BBQ的前置条件,所以不用把此项加满,只要5级能出BBQ即可,(为何要加BBQ,下文中有详细解说),因游戏角色附带此技能基础条件为1,所以加点4次80sp即可。 2、浮空弹\/25sp:【建议不加】不建议刷图的玩家升级此技能。此...

DNF第十一章弹药纯刷图加点
BBQ点一级,踏射一级,浮空弹不加,浮空铲不加,冰冻手雷满,感电受雷满,弹夹扩充满,毛雷五级出前置,C4五级出前置,尼尔狙击满。下面我再详细的说一下颇有争议的几个技能:地狱烈焰、空中射击、弹药主宰、黑玫瑰特种部队、魔法暴击和远古记忆 一、关于地狱烈焰 弹药改版以前,地狱烈焰是绿色的,异常...

相似回答