练习-Java循环综合练习一之住房贷款还款计算

任务描述

本关任务:编写一个程序,由用户输入住房贷款和贷款年限,程序输出不同利率下的月还款额和总还款额,利率从 5%~8%,增长间隔为 1/8。例如,如果输入贷款额 10000 元人民币,贷款期限 5 年,程序应输出如下内容:

 
 
  1. 贷款金额: 10000
  2. 贷款年限: 5
  3. 利率 月还款额 总还款额
  4. 5.000% 188.71 11322.74
  5. 5.125% 189.28 11357.13
  6. ……
  7. 8.000% 202.76 12165.83

注意:贷款金额、贷款年限和结果之间用英文冒号和一个空格分隔;利率、月还款额和总还款额之前用 4 个空格分隔。

计算公式如下所示:

月利率=12年利率​

总还款额=月还款额×12×year

月还款额=(1+月利率)year×12−1(贷款金额×月利率)×(1+月利率)year×12​

以上公式中 year 代表贷款年限。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

参考答案

/*
任务:编写一个程序,由用户输入住房贷款和贷款年限,程序输出不同利率下的月还款额和总还款额,利率从 5%~8%,增长间隔为 1/8。
例如,如果输入贷款额 10000 元人民币,贷款期限 5 年,程序应输出如下内容:
贷款金额: 10000
贷款年限: 5
利率    月还款额    总还款额
5.000%    188.71    11322.74
5.125%    189.28    11357.13
……
8.000%    202.76    12165.83
利率请保留3位小数,月还款额和总还款额请保留2位小数。
利率和月还款额以及总还款额之间保留4个空格。
思路:获取住房贷款以及贷款年限,计算不同利率下的月还款额以及总还款额。
*/
// 请在Begin-End间编写完整代码,类名请使用LoanTest
/********** Begin **********/
// 导入 Scanner 类
import java.util.Scanner;
// 定义公开类  LoanTest
public class LoanTest {
    // 定义主方法 main,在该方法中完成本关任务
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        // 接收贷款额
        int loan=input.nextInt();
        // 接收贷款年限
        int year=input.nextInt();
        // 第一步:定义变量月还款额,并赋初值0
        double monthlyPay=0;
        // 第二步:定义变量总还款额,并赋初值0
        double totalPay=0;
        // 第三步:输出贷款额
        System.out.println("贷款额:"+loan);
        // 第四步:输出贷款年限
        System.out.println("贷款年限:"+year);
        // 第五步:输出利率、月还款率以及总还款率
        System.out.println("利率"+"    "+"月还款额"+"    "+"总还款额");
        for (double i=5;i<=8;i+=0.125)
        {
            // 月利率
            double a=i/1200;
            // 月还款额
            monthlyPay=loan*a*Math.pow(1+a,12*year)/(Math.pow(1+a,12*year)-1);
            // 总还款额
            totalPay=12*monthlyPay*year;
            // 格式化输出
            System.out.printf("%.3f%%\t%.2f\t%.2f\n",i,monthlyPay,totalPay);
        }
    }
}
/********** End **********/      

Guess you like

Origin blog.csdn.net/qq_53149358/article/details/121206462