首页 > 解决方案 > 递归地实现与列表元素相乘的 q 的幂和

问题描述

我需要编写一个程序,该程序允许计算从指数i = 0开始的数字q的幂和乘以节点列表的第i个元素

该方法必须具有此签名

public double eval (double q)

并且是抽象类List的一个抽象方法

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

       }
}

我试图自己实现这是我对Cons的尝试:

public double eval(double q){

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

 }

而对于Nil

public double eval(double q){

  return 0;
}

这样,我可以计算索引i处列表元素的q^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

}

标签: javalistrecursionnodesabstract-class

解决方案


推荐阅读