当一个人从银行贷款后,在一段时间内他(她)将不得不每月偿还固定的分期付款。这个问题要求计算出贷款者向银行支付的利率。假设利率按月累计。
输入
输入文件仅一行包含三个用空格隔开的正整数。
第一个整数表示贷款的原值,第二个整数表示每月支付的分期付款金额,第三个整数表示分期付款还清贷款所需的总月数。
输出
输出文件应该是一个实数,表示该贷款的月利率(用百分数表示),四舍五入精确到0.1%。
样例
LOAN.IN
1000 100 12
LOAN.OUT
2.9
思路
二分答案。因为是利滚利的缘故,不能直接套用公式,可解。
var m,y,mouth,jg,i,minn:longint; s:string; min,ans:real; function js(mid:longint):real; var mid1,n:real; i:longint; begin n:=m; mid1:=mid/10000; for i:=1 to mouth do n:=n*(1+mid1)-y; exit(n); end; function ef(l,r:longint):longint; var mid:longint; zhi:real; begin while ldo begin mid:=(l+r) div 2; zhi:=js(mid); if (abs(zhi) or (minn=-1) then begin min:=abs(zhi); minn:=mid; end; if zhi>0 then r:=mid; if zhi<0 then l:=mid+1; if zhi=0 then exit(mid); end; exit(l); end; begin minn:=-1; read(m,y,mouth); jg:=ef(0,trunc((y/m)*10000)); ans:=jg/100; writeln(ans:0:1); end.