Реализует сумму степеней q, умноженных для элементов списка - PullRequest
0 голосов
/ 31 мая 2019

Мне нужно написать программу, которая позволяет вычислять суммы степеней числа q , начиная с показателя степени i = 0 , умноженного на элемент i списка узлов

Метод должен иметь такую ​​подпись

public double eval (double q)

И это абстрактный метод абстрактного класса Список

abstract class List{ 
      abstract double eval(double q);
}

реализовано

class Nil extends List{

       public double eval(double q){

           //Method to implement
        }
}


class Cons extends List{

     int elem;
     List next;

     public Cons(int elem, List next){

          this.elem = elem;
          this.next = next;
     }

      public double eval(double q){

        //Method to implements

       }
}

Я пытался реализовать самостоятельно Вот моя попытка Минусы :

public double eval(double q){

  return elem * q + next.eval(q*q);

 }

Принимая во внимание Ноль :

public double eval(double q){

  return 0;
}

Таким образом, я могу вычислить степени q ^ i для элемента списка с индексом i , но я не могу добавить к возвращаемому значению результаты первого элемента для q ^ 0 .Как можно реализовать это поведение без добавления каких-либо других параметров, кроме q ?

Мне нужно реализовать это без использования методов стандартного класса Java

Пример

Input: inputList = [1,2,3]
method: inputList.eval(5) 
output: 1 * 5^0 + 2 * 5^1 + 3 * 5^2 = 1 + 10 +  75 = 86

Пример кода

public static void main(String[] args)
{
      Cons list = new Cons(1,new Cons(2, new Cons(3, new Nil());

       System.out.println(list.eval(5));
       //It should output 1 * 5^0 + 2 * 5^1 + 3 * 5^2 = 1 + 10 +  75 = 86 but in the way i implemented It i can't calculate the First element of the list * 5^0

}
...