等额本金算房贷以及提前还款应还利息

#include <iostream>
using namespace std;

double get_every(int month, double lilv, double loan) {
	return loan/(double)month + loan*lilv;
}

double get_lixi(int month, double lilv, double loan, int end_month) {
	double every = loan/(double)month;
	double a1 = loan*lilv;
	double an = (loan - every*end_month + every) * lilv;
	return (a1 + an)*end_month/2.0;
}

void get_result(int month1, int month2, int month3, double loan, double lilv) { 
	printf("首月还款:%f,  %f, %f\n", get_every(month1, lilv, loan), get_every(month2, lilv, loan), get_every(month3, lilv, loan));
	printf("首月递减:%f,  %f, %f\n", loan/(double)month1 * lilv, loan/(double)month2 * lilv, loan/(double)month3 * lilv);
	for (int i = 3; i < 10; ++i) {
		printf("============================\n");
		printf("第%d年提前还清需还利息:\n%f, %f, %f\n",
			i+1,
			get_lixi(month1, lilv, loan, i*12+1), 
			get_lixi(month2, lilv, loan, i*12+1),
			get_lixi(month3, lilv, loan, i*12+1));
		printf("第%d年提前还清需还总额:\n%f, %f, %f\n",
			i+1, 
			loan + get_lixi(month1, lilv, loan, i*12+1),
			loan + get_lixi(month2, lilv, loan, i*12+1),
			loan + get_lixi(month3, lilv, loan, i*12+1));
	}
}

void test() {
        //贷款年数,如10年,15年,20年
	int month1= 12*10;
	int month2= 12*15;
	int month3= 12*20;
        //年利率,如5.88%
	double lilv = 5.88/(100*12.0);
	    //贷款金额,如200W
    double loan = 200 *10000;
	printf("还款月数: %d, %d, %d\n=======================\n", month1, month2, month3);
	get_result(month1,month2,month3,loan,lilv);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值