Java program – recursive function that calculates the amount of money that will be in the savings account using the input information
A savings account typically accrues savings using compound interest. If you deposit
$1,000 with a 10% interest rate per year, then after one year you have a total of
$1,100. If you leave this money in the account for another year at 10% interest,
then after two years the total will be $1,210. After three years, you would have
$1,331, and so on.
Write a java program that inputs the amount of money to deposit, an interest rate per
year, and the number of years the money will accrue compound interest. Write a
recursive function that calculates the amount of money that will be in the savings
account using the input information.
To verify your function, the amount should be equal to P(1 + i)n, where P is the
amount initially saved, i is the interest rate per year, and n is the number of years.
Answer:
/**QuestionInterest.java*/ import java.util.Scanner; public class QuestionInterest { /** * calculateSavings * Recursively compute compound interest. * The recursive definition is: * savings(d,i,y) = savings((d*i)+d,i,y-1) * where d = initial deposit, i = interest rate, y = number of years * @param initial_deposit Initial amount of deposit * @param yearly_interest_rate Interest rate, value between 0-1 * @param num_years integer that is number of years * @return double Savings accrued at the interest rate after the number of years */ public static double calculateSavings(double initial_deposit, double yearly_interest_rate, int num_years) { // Base case -- if num_years = 0, then we just get the amount of // the initial deposit if (num_years == 0) return initial_deposit; // If num_years > 0, then for the first year we make // (interest_rate * initial) + initial. Feed this into the // same function, but now for one fewer year since we have accounted // for the value after this year. return calculateSavings( (initial_deposit * yearly_interest_rate) + initial_deposit, yearly_interest_rate, num_years - 1); } // ====================== // main method // ====================== public static void main(String[] args) { // Input variables double initial_amount; double interest_rate; int num_years; double future_value; Scanner scan = new Scanner(System.in); System.out.println("Enter initial amount to save:"); initial_amount = scan.nextDouble(); System.out.println("Enter yearly interest rate (e.g. 0.10 for 10%)"); interest_rate = scan.nextDouble(); System.out.println("Enter number of years of compounded interest. "); num_years = scan.nextInt(); future_value = calculateSavings(initial_amount, interest_rate, num_years); System.out.println("$" + initial_amount + " after " + num_years + " years, at " + interest_rate + " would amount to $" + future_value); } }
Leave a reply