编写一个Java程序,求1+2!+3!+4!+5!+……+20!

如题所述

public class FactorialPlus
{
int f(int n)
{
int t = 0;
int s = 1;
for(int i = 1;i <= n;i++)
{
s = s * i;
t = t + s;
}
return t;
}
public static void main (String [] args)
{
int m = 20;//改变这个m的值即可改变输出结果
FactorialPlus p = new FactorialPlus();
if(m >= 0)
{
System.out.println(p.f(m));
}
else
{
System.out.println("请输入一个大于0的数");
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-25
楼上已经有正确答案,你可以分析下n!=1*2*4...*n;可以看出n!=(n-1)*n;所以我们并不需要算出所有n!,从1的阶乘开始算起,2!=1!*2;3!=2!*3,可以明显减少计算量我们只需要计算他们的和
第2个回答  2013-08-25
给你一个更简单直接的public class text
{
public static void main(String [] args)
{
long sum=0;
long n=1;
for(int i=1;i<=20;i++)
{
n<=i; n=n*i;
sum=sum+n;
}
System.out.println("1+2!+3!+4!+5!+....+20!结果为:"+sum); }}有图 忘采纳 谢谢
第3个回答  2013-08-25
给你一个简单的public class test
{
public static void main(String [] args)
{
long sum=0;
long js=1;
for(int i=1;i<=4;i++)
{
js=js*i;
sum=sum+js;
}
System.out.println("1+2!+3!+4!+5!+....+20!结果为:"+sum); }
第4个回答  2013-08-25
内层循环求阶乘,外层求和
相似回答