学习C++从娃娃抓起!记录下洛谷C++学习和备考过程中的题目,记录每一个瞬间。
附上汇总贴:洛谷刷题C++语言 | 汇总_热爱编程的通信人的博客-CSDN博客
【题目描述】
当一个人从银行贷款后,在一段时间内他(她)将不得不每月偿还固定的分期付款。这个问题要求计算出贷款者向银行支付的利率。假设利率按月累计。
【输入】
三个用空格隔开的正整数。
第一个整数表示贷款的原值 w0,第二个整数表示每月支付的分期付款金额 w,第三个整数表示分期付款还清贷款所需的总月数 m。
【输出】
一个实数,表示该贷款的月利率(用百分数表示),四舍五入精确到 0.1%。
【输入样例】
1000 100 12
【输出样例】
2.9
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int loan, pay, month;
double rate, mid, l=0, r=10, t;
int main()
{
cin >> loan >> pay >> month;
while (l<=r) {
mid = l + (r-l)/2;
// cout << "l r " << l << " " << r << endl;
if (r-l<0.0001) break;
t = loan;
for (int i=1; i<=month; i++) {
t = t*(1+mid) - pay;
// cout << "t " << t << endl;
}
if (t>0) r = mid;
else if (t<0) l = mid;
else {
printf("%.1f", mid*100);
}
}
printf("%.1f", mid*100);
return 0;
}
【运行结果】
1000 100 12
2.9