3882 - 4.22 财务应用程序:显示分期还贷时间表

通过次数

0

提交次数

0

时间限制 : 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);
		}
	}
}