INTRODUCTION TO COMPUTER SCIENCE
Robert Sedgewick and Kevin Wayne


This is the syntax highlighted version of CarLoan.java.


/*************************************************************************
 *  Compilation:  javac CarLoan.java
 *  Execution:    java CarLoan P Y R
 *  
 *  Calculate the monthly payments if you take out a $P loan for
 *  Y years with annual interest rate R %, where interested is
 *  compounded monthly.
 *
 *                     P r 
 *     payment =  -----------------        where n = 12 * Y, r = R / 12 / 100
 *                1  - (1 + r)^(-n)
 *
 *
 *  % java CarLoan 20000 5 6
 *  Monthly payments = 386.6560305885655
 *  Total interest   = 3199.361835313932
 *
 * 
 *  Bugs
 *  ----
 *  Does not work if R = 0% interest. Easy to fix if you know about
 *  if-else statements.
 *
 *************************************************************************/

public class CarLoan { 
   public static void main(String[] args) { 
      double P = Double.parseDouble(args[0]);
      double Y = Double.parseDouble(args[1]);
      double R = Double.parseDouble(args[2]);

      double r = R / 12 / 100;    // monthly interest rate
      double n = 12 * Y;         // number of months

      double payment  = (P * r) / (1 - Math.pow(1+r, -n));
      double interest = payment * n - P;
 
      System.out.println("Monthly payments = " + payment);
      System.out.println("Total interest   = " + interest);
   }

}


Last updated: Wed Feb 11 18:07:23 EST 2004 .
Copyright © 2004, Robert Sedgewick and Kevin Wayne.