• [洛谷1163]银行贷款


     

    当一个人从银行贷款后,在一段时间内他(她)将不得不每月偿还固定的分期付款。这个问题要求计算出贷款者向银行支付的利率。假设利率按月累计。

    输入

    输入文件仅一行包含三个用空格隔开的正整数。

    第一个整数表示贷款的原值,第二个整数表示每月支付的分期付款金额,第三个整数表示分期付款还清贷款所需的总月数。

    输出

    输出文件应该是一个实数,表示该贷款的月利率(用百分数表示),四舍五入精确到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 l<r do  
        begin  
            mid:=(l+r) div 2;  
            zhi:=js(mid);  
            if (abs(zhi)<min) 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.
    View Code
  • 相关阅读:
    Ajax实现表格实时编辑
    自定义简单分页
    有趣的 0
    关于AJAX的一些事
    JQ中的FormData对象 ajax上传文件
    订单导出
    javaScript事件委托
    javascript递归函数
    详解javascript中this的工作原理
    详解JavaScript对象继承方式
  • 原文地址:https://www.cnblogs.com/yangqingli/p/4909594.html
Copyright © 2020-2023  润新知