计算这个列式前20项之和

2/1!-3/2!+5/3!-8/4!+13/5!-21/6!…

import static java.lang.Math.pow;

public class Regular {
public static void main(String[] args){
System.out.println("2/1!-3/2!+5/3!-8/4!+13/5!-21/6!…");
double sum=0;
for(int i=1;i<=20;i++){
int temp=1;
for(int j=1;j<=i;j++){
temp*=j;
}
sum+=pow(-1,i+1)*(double)func(i)/temp;
}
System.out.println(sum);
}
static int func(int n){
if(n==1){
return 2;
}else if(n==2){
return 3;
}else {
return func(n-1)+func(n-2);
}
}
}


public static void main(String[] args) {
        //2/1!-3/2!+5/3!-8/4!+13/5!-21/6!
        int fact=1,b,s=1;
        double sum=0;
        int[] a = {1,1};
        for(int i=1;i<=20;i++){
            b=a[0]+a[1];
            fact*=i;
            sum+=1.0*s*b/fact;
            s=-s;
            a[(i-1)%2]=b;
        }
        System.out.println(sum);
    }