贷款问题——C语言

问题:

购房从银行贷了一笔款的,准备每月还款额度为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次,22=2*2=4,26=2
22 222=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 = lg10(p/(p-d*r)/lg10(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的对数。

//结果算不出来,最后定位错误为log10(p-d*r)其值为负数,所以没法继续进行计算。

记录一下,目前没有解决。

相关推荐
白帽攻防录3 小时前
SRC 挖洞:PostScript 打印机驱动双 RCE,打印服务器怎么变成内网跳板
开发语言·网络安全·php·内网安全
十年Java程序媛3 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
2603_965148113 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya4 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
学逆向的4 小时前
C 循环结构的执行效率分析
c语言·开发语言·数据结构·网络安全
小坏讲微服务5 小时前
刚发布一个月的JDK 27,为什么我建议你立刻升级?
java·开发语言·spring boot·spring·架构·求职招聘·springboot4
打工仔折腾 AI6 小时前
用 Dashlet 把极空间 NAS 服务入口整理成统一导航首页的实践
java·开发语言·人工智能·后端·python·rpc·ai agent 实战
MATLAB代码顾问6 小时前
Simulink PI 参数扫描与批量仿真完整 MATLAB 代码
开发语言·matlab
Want5957 小时前
Python跳动的爱心②
开发语言·python·数学建模
Navigator_Z7 小时前
LeetCode //C - 1293. Shortest Path in a Grid with Obstacles Elimination
c语言·算法·leetcode