/*
求1+2!+3!+......+20!的和
*/
class Demo
{
private Demo(){}
private static Demo instance = new Demo();
public static Demo getInstance()
{
return instance;
}
public long getSum(int n)
{
long sum = 0;
long fac = 1L;
for (int i = 1; i <= n ; i++)
{
// sum = sum + getFatorial(i);
fac *= i;
sum += fac;
}
return sum;
}
private long getFatorial(int n)
{
if(n==1)
return 1L;
else
return n * getFatorial(n-1);
}
}
class MainClass
{
public static void main(String[] args) throws Exception
{
Demo d = Demo.getInstance();
System.out.println("阶乘和为:"+d.getSum(4));
//System.out.println("阶乘和为:"+d.getSum(20));
}
}
/*
1. 怎么第一反应就是搞个递归?发现api文档里的Math类竟然没有阶乘函数就写了一个。
*/