编写一个java程序,计算1+2!+3!+4!+……前100项之和

如题所述

第1个回答  2017-05-04
public class 阶乘和 {
public static void main(String[] args) {
int ji=1;
int sum =0;
for(int i=1;i<=10;i++) {
ji=ji*i;
sum = sum+ji;
System.out.println(ji);
}
System.out.println("和为:"+sum);
}
}
这是小于10 的,他的和为4037913 ,所以100 你得改数据类型,太大int 装不下。
第2个回答  2017-05-04
第一个递归传的参数为new BigDecimal(100);
得出的数非常大,所以要用BigDecimal类
BigDecimal test(BigDecimal integer){
if(integer.intValue()==1){
return new BigDecimal(1);
}
return test(integer.subtract(new BigDecimal(1))).add(integer);
}

BigDecimal factorial(BigDecimal number) {
if(number.intValue()==1){
return new BigDecimal(1);
}
return number.divide(factorial(number.subtract(new BigDecimal(1))));
}本回答被提问者采纳
第3个回答  2017-05-04
public class Factorial {
public static void main(String[] args) {
Factorial factorial = new Factorial();
long result = 0;
for (int i = 1; i <= 100; i++) {
result += factorial.getFactorial(i);
}
System.out.println(result);
}

public long getFactorial(int num) {
if (num == 1) {
return 1;
} else {
return num * getFactorial(num - 1);
}
}
}

追问

本回答被网友采纳
第4个回答  2017-05-04
用大数类运算就行了

编写一个java程序,计算1+2!+3!+4!+……前100项之和
public static void main(String[] args) { int ji=1;int sum =0;for(int i=1;i<=10;i++) { ji=ji*i;sum = sum+ji;System.out.println(ji);} System.out.println("和为:"+sum);} } 这是小于10 的,他的和为4037913 ,所以100 你得改数据类型,太大int 装不下。

(JAVA编程)写一个完整的程序使用循环结构计算1+2+3...+100的和并输出...
public class tests{ public static void main(String[] args) { int result=0;for(int i=1;i<=100;i++){ result=result+i;} System.out.print(result);} } 输出结果:5050

用java利用for循环 计算1+2+3+4+5+。。。+100的总和!!
public static void main(String[] args) { int sum=0;for(int i=1;i<=100;i++){ sum=sum+i;} System.out.println(sum);}

1!+2!+3!+…100!的阶层求和,用JAVA编程怎么编写出来,高手指点下,谢谢了...
我编写的是 1-10 的阶乘求和 ,如果是 1-100 的话 还要解决科学计数的问题(解决办法是使用字符串,具体的你可以从网上搜下)public class JieCheng { public static void main(String[] args){ int sum = 0;for(int i=1;i<=10;i++){ int m = 1;System.out.print(m);for(int j =...

哪位仁兄能帮帮用Java编个程:计算1+2!+3!+4!+...从第100项到200项之和...
int result1=1;int result2=0;for(int i=100;i<=200;i++){ for(int j=1;j<=i;j++){ result1=result1*j;} result2=result2+result1;} return result2;

编写一个Java程序,计算1!+2!+...从第100项到第200项之和 谢谢高手们喽...
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);} } } ...

设计求1+2+3+4……+99+100的和的算法,并画出相应的程序框图
下面是C语言的实现方式 include<stdio.h>void main(){ int i,sum; sum = 0; for(i=1; i<=100; i++) { sum += i; } printf("%d",sum);}下面是程序框图

用JAVA编写程序,计算1!+2!+3!+…+n!的和,其中阶乘的写一个方法...
public class Factorial { \/\/下面的这个方法利用递归的方法求阶乘 public int getFac(int m){ if(m==1){ return 1;} else { return m*getFac(m-1);} } public static void main(String args[]){ Factorial fac=new Factorial();\/\/System.out.println(fac.getFac(4));int sum=0;for(...

试编程求解S=1+2+3+4+...+99+100。
int i = 1; i < 101; ++i) s += i;首先我们要创建一个变量i,作为加数。i的取值范围应该是在1到100之间(包含1与100),所以i的最小值为1,最大值为100:i = 1; i < 101;最大值小于101就代表着最大值为100 最后就是相加 s += i要注意将s初始化为0,否则会得到错误的答案 ...

用java语言求1!+2!+3!+4!+5!+6!
public class Test { public static void main(String[] args){ { float n,s=0,t=1;for(n=1;n<=6;n++){ t*=n;s+=t;} system.out.println("1+2!+3!...+6!=%e\\n",s);} }

相似回答