Проблема в вычислении суммы. В первом коде использовали W(i+1)/Wi=f(i) - разница между текущим элементом и последующим, и складываем по очереди текущий элемент с последующим, однако он не выдает правильного результата.(второй код решает правильно)
import static java.lang.Math.*;
import java.io.*;
class Example5{
public static int factorial (int n){
if(n==0) return 1;
for(int i=n;i>1;i--){ n*=(i-1);}
return n;}
public static void main (String[]args)throws Exception{
BufferedReader br=new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Number = ");
String k1=br.readLine();
int k=Integer.parseInt(k1);
double a=pow(-1,-2)*factorial(-2+3)/(2*(-2-4));
double sum=a;
for (int i=-1;k>=i;i++){
if(i==3) i++;
sum+=((4-i)*(i+4)*a)/(i-3);
a=((4-i)*(i+4)*a)/(i-3);}
System.out.println("Sum= "+ sum);
}}
Изначально был вот такой код:
import static java.lang.Math.*;
import java.io.*;
class Example{
public static int factorial (int n){
if(n==0) return 1;
for(int i=n;i>1;i--){ n*=(i-1);}
return n;}
public static void main (String[]args)throws Exception{
BufferedReader br=new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Number = ");
String k1=br.readLine();
int k=Integer.parseInt(k1);
double sum=0;
for (int i=-2;k>=i;i++){
if(i==4) i++;
else
sum+=(pow(-1,i)*factorial(i+3))/(2*(i-4));}
System.out.println("Sum= "+ sum);
}
}
Задание:
Продвижение своими сайтами как стратегия роста и независимости