3882 - 4.22 财务应用程序:显示分期还贷时间表
时间限制 : 1 秒
内存限制 : 128 MB
对于给定的贷款额的月支付额包括偿还本金及利息。月利息是通过月利息乘以余额(剩余本金)计算出来的。因此,每月偿还的本金等于月支付额减去月利息。编写一个程序,输入贷款总额、贷款年数以及利息,然后显示月支付额和总偿还额,并显示分期还贷时间表。
题目输入
输入三个数,分别代表贷款总额、贷款年数以及利息
题目输出
现输出月支付额和总偿还额,再输出分期还贷时间表,所有输入小数点后保留2位(采用截位方式),标题行每列之间空一个Tab位,数字行每列之间空二个Tab位。
输入/输出样例
输入格式
10000 1 7
输出格式
Monthly Payment: 865.26 Total Payment: 10383.2 Payment# Interest Principal Balance 1 58.33 806.93 9193.07 2 53.62 811.64 8381.43 3 48.89 816.37 7565.06 4 44.12 821.14 6743.92 5 39.33 825.93 5917.99 6 34.52 830.74 5087.25 7 29.67 835.59 4251.66 8 24.8 840.46 3411.2 9 19.89 845.37 2565.83 10 14.96 850.3 1715.53 11 10.0 855.26 860.27 12 5.01 860.25 0.01
Java解答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner n = new Scanner(System.in); double a = n.nextDouble(); int y = n.nextInt(); double ir = n.nextDouble(); ir = ir / 12 / 100; double MP = (a * ir) / (1 - 1 / Math.pow(1 + ir, y * 12)); double MP1 = (int) (MP * 100) / 100.0; double TP = MP * 12 * y; double TP1 = (int) (TP * 100) / 100.0; System.out.println("Monthly Payment: " + MP1); System.out.println("Total Payment: " + TP1); System.out.println(); System.out.println("Payment#" + "\t" + "Interest" + "\t" + "Principal" + "\t" + "Balance"); for (int i = 1; i <= y * 12; i++) { double interest = (int) (ir * a * 100) / 100.0; double principal = (int) ((MP - interest) * 100) / 100.0; TP = (int) ((a - principal) * 100) / 100.0; a = TP; System.out.println(i + "\t\t" + interest + "\t\t" + principal + "\t\t" + TP); } } }