问题:
购房从银行贷了一笔款d,准备每月还款额度为p,月利率为r,计算多少个月能还清。
设d= 300 000元 ,p=6000元,r = 0.01。结果保留2位小数。
查了一下这个题目的背景,银行为等额本息
常见的几种还款方式
链接来源
今天小编就来讲讲常见的几种还款方式:
1.等额本金
等额本金是指在还款期内把贷款数总额等分,每月偿还同等数额的本金和剩余贷款在该月所产生的利息。这种贷款可以提前还款。
计算公式:
每月还款金额=(贷款本金/还款月数)+(本金-已归还本金累计额)×每月利率
例如:借款50万元,10年还清,年利率7%,月利率0.5833%,则第一月还款金额为:(50万/120个月)+50万×0.5833%=7083.2元,以此类推。
2.等额本息
等额本息是指在还款期内,每月偿还同等数额的贷款(包括本金和利息),和等额本金是不一样的概念,虽然刚开始还款时每月还款额可能会低于等额本金还款方式,但是最终所还利息会高于等额本金还款方式,该方式可以提前还款,经常被银行使用。
·计算公式:
[贷款本金×月利率×(1+月利率)^ 还款月数 ]÷[(1+月利率)^还款月数-1]
例如:借款50万元,10年还清,年利率7%,月利率0.5833%,则每月还款额(含本、息)为5805.4元。
3.随借随还:
4.先息后本:
5.按期还本付息
6.一次性还本付息
等额本息知识
链接来源
一、等额本息计算公式
1、总利息=还款月数每月还款额-贷款本金。
2、每月还款额=[贷款本金×月利率×(1+月利率)^ 还款月数]÷[(1+月利率)^还款月数-1],
其中“^ 还款月数”代表还款月数的次方,比如“^ 2”就代表某个数的2次方,也就是这个数相乘2次,2^ 2=22=4,2^6=22222*2=64,像这样计算。
二、理解等额本息
等额本息还款,虽然表面上,是每个月的还款金额相等,但实际上,每个月的还款本金和还款利息都是不一样的,还款本金所占比例逐月递增,还款利息所占比例逐月递减,两者之和使每月还款金额不变。
就像,9+1=10,8+2=10,7+3=10,6+4=10,5+5=10,4+6=10,3+7=10,2+8=10,1+9=10,是类似于这样计算的。
三、等额本息举例说明
假设贷款3000贷6个月,月利率1.5%,则:
每月还款额=526.58元,
第1个月本金=481.58元,利息=45元;
第2个月本金=488.8元,利息=37.78元;
第3个月本金=496.13元,利息=30.44元;
第4个月本金=503.57元,利息=23元;
第5个月本金=511.13元,利息=15.45元;
第6个月本金=518.79元,利息=7.78元。
回归题目
设还清月数为m,这里根据公式算出来了求解月数的公式:
m= [lg( p) - lg(p - d*r)]/lg(1+r)
其给出的C语言代码是
#include<stdio.h>
#include<math.h>
int main(){
float d,p,r,m;
d = 300000;
p = 6000;
r = 0.01;
m = log10(p/(p-d*r))/log10(1+r);
printf("m=%6.2f\n",m);
return 0;
}
//m = 69.66
纠正错误
经过验证后,发现几个问题
//对数函数的写法错误,在Dev C++ 下TDM-GCC 4.5.1 64-bit Release编译下为log10(N),log(N)才对。注解log10(N),是log以10为底N的对数;log(N),是log以e为底N的对数。
问题已经解决
发现有些地方我没有阐述说明清楚,下面是特别详细的计算推导过程,作为补充。
文章来源:https://www.toymoban.com/news/detail-720767.html
文章来源地址https://www.toymoban.com/news/detail-720767.html
到了这里,关于贷款问题——C语言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!