java编程,怎么算1!+2!+3!+4!+……+n!
发布网友
发布时间:2023-10-10 18:38
我来回答
共4个回答
热心网友
时间:2024-12-04 21:44
public class Test004 {
public static void main(String[] args) {
System.out.println(func2(4));
}
//计算阶乘
private static long func1(int n) {
if(n <= 0) {
System.out.println("请输入正整数!");
return -1;
}else if(n == 1){
return 1;
}else {
return n * func1(n-1);
}
}
//计算求和
private static long func2(int n) {
if(n <= 0) {
System.out.println("请输入正整数!");
return -1;
}else if(n == 1){
return 1;
}else {
return func1(n) + func2(n-1);
}
}
}
热心网友
时间:2024-12-04 21:44
//求N的阶乘方法
public static int factorial(int n)
{
if(n == 1)
{
return 1;
}
return n * factorial(n-1);
}
//求出1!+2!+3!+...+n!
public static int calc(int n)
{
if(n == 1)
{
return 1;
}
return factorial(n) + calc(n - 1);
}
//main方法
public static void main(String[] args) throws Exception
{
System.out.println(calc(3));
}
热心网友
时间:2024-12-04 21:45
1! = 1;
2! = 1*2;
3! = 1*2*3;
1! + 2! + 3! = 1(1+2(1+3)) ;
1! + 2! + 3! +4! = 1( 1 + 2( 1 + 3(1 + 4)));
规律如上,代码参考下下面的
static long a (int i){
if (i < 1){
throw new IllegalStateException("输入小于1");
}
if (i == 1){
return 1;
}
long ret = 1;
for ( ; i > 1; i--){
ret = 1 + i *ret;
}
return ret;
}
public static void main(String[] args) {
System.out.println(a(4));
}
热心网友
时间:2024-12-04 21:45
public class Jiec {
public static void main(String[] args) {
int sum=0,t=1,n;
for(n=1;;n++)
{
t=t*n;
sum=sum+t;
if(sum>10000)
{
break;
}
}
System.out.println("sum="+sum+" "+"n="+n);
}
}