/*
求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类竟然没有阶乘函数就写了一个。
*/
java50题----21阶乘和
最新推荐文章于 2024-03-21 22:47:12 发布
本文提供了一个简单的Java程序示例,用于计算从1到指定整数的阶乘之和。通过迭代方式实现,避免了递归可能导致的堆栈溢出问题。
817

被折叠的 条评论
为什么被折叠?



