Java黑皮书课后题第5章:**5.22(金融应用:显示分期还贷时间表)对于给定的贷款额,月支付额包括偿还本金及利息。编写一个程序,让用户输入贷款总额年限利率,然后显示分期还贷时间表
5.22(金融应用:显示分期还贷时间表)对于给定的贷款额,月支付额包括偿还本金及利息。编写一个程序,让用户输入贷款总额年限利率,然后显示分期还贷时间表
- 题目
- 题目概述
- 运行示例
- 代码
题目
题目概述
5.22(金融应用:显示分期还贷时间表)对于给定的贷款额,月支付额包括偿还本金及利息。编写一个程序,让用户输入贷款总额年限利率,然后显示分期还贷时间表
月利息是通过月利率乘以余额(剩余本金)计算出来的
注意:最后一次偿还后,余额可能不为0,如果不为0的话,最后一个月支付额应当是正常的月支付额加上最后的余额
提示:编写一个循环来打印该表,由于每个月的还款额都是相同的,因此应当在循环之间开始它。开始时,余额就是贷款总额。在循环的每次迭代中,计算利息及本金,然后更新余额,这个循环可能是这样的:
for( i = 1; i <= numberOfYears * 12; i++) {
interest = monthlyInterestRate * balance;
principal = monthlyPayment - interest;
balance = balance - principal;
System.out.println(i + “\t\t” + interest + “\t\t” + principal + “\t\t” + balance);
}
运行示例

代码
import java.util.Scanner;public class Test5_22 {public static void main(String[] args) {// 获取用户输入Scanner input = new Scanner(System.in);System.out.println("Loan Amount: ");double amount = input.nextDouble();System.out.println("Number of Years: ");int years = input.nextInt();System.out.println("Annual Interest Rate(7%-->7): ");double interestRate = input.nextDouble();// 计算月支付额、总支付额double monthlyPayment = (amount * interestRate / 1200) / (1 - 1 / Math.pow(1 + interestRate / 1200, years * 12));double totalPayment = monthlyPayment * years * 12;System.out.println("Monthly Payment: " + monthlyPayment);System.out.println("Total Payment: " + totalPayment);// 输出表头System.out.println("Payment# Interest\t\tPrincipal\t\ttBalance");// for循环double interest = 0.0, principal = 0.0;for(int i = 1;i <= years * 12;i++){interest = interestRate / 1200 * amount;principal = monthlyPayment - interest;amount -= principal;if(i == years * 12)principal += amount;System.out.print(i + "\t\t ");System.out.printf("%5.2f\t\t%6.2f\t\t%7.2f\n", interest, principal, amount);}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
