P163 银行贷款
1.P1077 [NOIP2012 普及组] 摆花2.P3842 [TJOI2007] 线段3.P1164 小A点菜4.P2392 kkksc03考前临时抱佛脚5.P1102 A-B 数对6.P1002 [NOIP2002 普及组] 过河卒
7.P163 银行贷款
8.P1182 数列分段 Section II9.[NOIP2015 提高组] 跳石头10.P1734 最大约数和11.P8772 [蓝桥杯 2022 省 A] 求和12.P1216 [USACO1.5] [IOI1994]数字三角形 Number Triangles13.P5602 小 E 与美食14.P3817 小A的糖果15.P1130 红牌16.P1196 [NOI2002] 银河英雄传说17.P1955 [NOI2015] 程序自动分析18.P1621 集合19.P5250 【深基17.例5】木材仓库20.P2184 家谱21.[USACO16DEC] Cities and States S22.P4653 [CEOI2017] Sure Bet23.P1578 奶牛浴场24.P1387 最大正方形25.小鸟的设备26.P1439 【模板】最长公共子序列27.P1091 [NOIP2004 提高组] 合唱队形28.P1020 [NOIP1999 提高组] 导弹拦截29.P2340 [USACO03FALL] Cow Exhibition G30.P2285 [HNOI2004] 打鼹鼠31.P4995 跳跳!32.P3817 小A的糖果33.P5019 [NOIP2018 提高组] 铺设道路34.P1969 [NOIP2013 提高组] 积木大赛35.P1094 [NOIP2007 普及组] 纪念品分组36.P4447 [AHOI2018初中组] 分组银行贷款
题目描述
当一个人从银行贷款后,在一段时间内他(她)将不得不每月偿还固定的分期付款。这个问题要求计算出贷款者向银行支付的利率。假设利率按月累计。
输入格式
三个用空格隔开的正整数。
第一个整数表示贷款的原值 $w_0$,第二个整数表示每月支付的分期付款金额 $w$,第三个整数表示分期付款还清贷款所需的总月数 $m$。
输出格式
一个实数,表示该贷款的月利率(用百分数表示),四舍五入精确到 $0.1%$。
数据保证答案不超过 $300.0%$。
样例 #1
样例输入 #1
1000 100 12
样例输出 #1
2.9
提示
数据保证,$1 \leq w_0, w\leq 2^{31}-1$,$1 \leq m\leq 3000$。
算法1
(二分) $O(KlogN)$
预备常识****:国家规定月利率不得大于2.5%
1.二分什么:利率
2.二分边界:
//由于国家月利率不得大于2.5%,因此从2.5开始出发
double l = 0, r = 500; //(0 + 500) /2 /100 == 2.5
while(r - l > le-4) //确定精度,0.1%=0.001 —— le-4
{
double mid = (l + r)/2;
//需要思考利率和还钱得关系
if(check(mid / 100)) l = mid;
else r = mid;
}
3.判断依据:当前利率的时候是否能还清贷款
bool check(double x){
double sum=a;
for(int i=1;i<=c;i++){
sum+=sum*x; //每月累计利率
sum-=b; //每月必须要还的钱
}
if(sum <= 0) return 1;
else return 0;
}
C++ 代码
#include <bits/stdc++.h>
using namespace std;
double a,b,c;
bool check(double x){
double sum=a;
for(int i=1;i<=c;i++){
sum+=sum*x; //每月累加利率
sum-=b; //每月必须还清的钱
}
if(sum<=0) return 1; //当前利率时可以将还清
else return 0; //当前利率时不可以还清
}
int main(){
scanf("%lf%lf%lf",&a,&b,&c);
double l = 0, r = 500; //由于国家最大利率不超过2.5% 因此从2.5出发(0+500)/2/100-即可得到2.5
while(r - l > 1e-4){ //确定精度
double mid= (l+r)/2;
if(check (mid/100)) l=mid; //还清说明当前利率(在一定的条件下)可以在小点使得还前的数越大
else r=mid; //还不完了,利率太大了 ,马上把利率降低
}
printf("%.1lf",l);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通