P1163 银行贷款
题目描述
当一个人从银行贷款后,在一段时间内他(她)将不得不每月偿还固定的分期付款。这个问题要求计算出贷款者向银行支付的利率。假设利率按月累计。
输入格式
三个用空格隔开的正整数。
第一个整数表示贷款的原值,第二个整数表示每月支付的分期付款金额,第三个整数表示分期付款还清贷款所需的总月数。
输出格式
一个实数,表示该贷款的月利率(用百分数表示),四舍五入精确到0.1%0.1%。
输入输出样例
输入
1000 100 12
输出
2.9
这道题是一道典型的二分题
思路:这道题主要就是在那个月利率上,因为国家规定月利率不得大于2.5%,所以我们可以从2.5出发(0+500)/2/100出发,开始使用二分逐步细化,那个check()函数主要是用来判断利率的大小,其中的for循环是用来计算c各月中的欠款和还款情况.
(举例说明:那么对于第 1 个月,他欠银行 a+ax ,但由题意得,他每个月向银行还 b 元钱,所以下个月前还欠银行 a+ax-b;来到第 2 个月,欠银行 (a+ax-b)+(a+ax-b)*x ,还款 b 元,以此类推,直到第 c 个月后,求出他还欠银行的钱数;如果欠的钱数 ≤ 0 ,说明在月利率为 x 的情况下,每月还 b 元是可以还清的,返回 true,反之,返回 false;)
#include <algorithm>
#include <cstring>
#include