2506: 【普及-】【P1163】银行贷款
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
当一个人从银行贷款后,在一段时间内他(她)将不得不每月偿还固定的分期付款。这个问题要求计算出贷款者向银行支付的利率。假设利率按月累计。
输入
三个用空格隔开的正整数。
第一个整数表示贷款的原值,第二个整数表示每月支付的分期付款金额,第三个整数表示分期付款还清贷款所需的总月数。
输出
一个实数,表示该贷款的月利率(用百分数表示),四舍五入精确到 。
样例输入 复制
1000 100 12
样例输出 复制
2.9
提示
数据保证, 贷款的原值,分期付款金额 , 月数 。
#include<bits/stdc++.h> #define eps 1e-4 using namespace std; int P,A,M; double ans; double f(double d) { double ret=0; for (int i=1;i<=M;i++) { ret+=A*pow(1/(1+d),i); } return ret; } int main(){ cin>>P>>A>>M; double L=0.0,R=5.0; while (fabs(f(ans)-P)>eps) { ans=(L+R)/2; if (f(ans)>P) L=ans; else R=ans; } printf("%.1f",ans*100); return 0; }