[Java] java计算倒数代码 →→→→→进入此内容的聊天室

来自 , 2019-04-09, 写在 Java, 查看 125 次.
URL http://www.code666.cn/view/ebe4bab9
  1. abstract class Expr {  
  2.   public abstract Expr d(String v);  
  3.   public Expr plus(Expr e2) { return new Plus(this, e2); }  
  4.   public Expr times(Expr e2) { return new Times(this, e2); }  
  5. }  
  6.  
  7. class Int extends Expr {  
  8.   private final int n;  
  9.   public Int(int m) { n = m; }  
  10.   public Expr d(String v) { return new Int(0); }  
  11.   public String toString() { return Integer.toString(n); }  
  12. }  
  13.  
  14. class Var extends Expr {  
  15.   private final String var;  
  16.   public Var(String v) { var = v; }  
  17.   public Expr d(String v) { return new Int(var.equals(v) ? 1 : 0); }  
  18.   public String toString() { return var; }  
  19. }  
  20.  
  21. class Plus extends Expr {  
  22.   private final Expr e1, e2;  
  23.   public Plus(Expr a, Expr b) { e1 = a; e2 = b; }  
  24.   public Expr d(String v) { return new Plus(e1.d(v), e2.d(v)); }  
  25.   public String toString() { return "(" + e1 + " + " + e2 + ")"; }  
  26. }  
  27.  
  28. class Times extends Expr {  
  29.   private final Expr e1, e2;  
  30.   public Times(Expr a, Expr b) { e1 = a; e2 = b; }  
  31.   public Expr d(String v)  
  32.   { return new Plus(new Times(e1, e2.d(v)), new Times(e1.d(v), e2)); }  
  33.   public String toString() { return "(" + e1 + " * " + e2 + ")"; }  
  34. }  
  35.  
  36. public class Derivative {  
  37.   public static void main(String[] args) {  
  38.     Expr x = new Var("x"), a = new Var("a"),  
  39.          b = new Var("b"), c = new Var("c");  
  40.     Expr e = a.times(x).times(x).plus(b.times(x)).plus(c);  
  41.     System.out.println("d(" + e + ", x) = " + e.d("x"));  
  42.   }  
  43. }  
  44. //java/4551

回复 "java计算倒数代码"

这儿你可以回复上面这条便签

captcha