zoukankan      html  css  js  c++  java
  • 银行贷款(二分)

    银行贷款

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 44  解决: 13
    [提交][状态][讨论版]

    题目描述

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

    输入

    仅一行包含三个用空格隔开的正整数。
    第一个整数表示贷款的原值,第二个整数表示每月支付的分期付款金额,第三个整数表示分期付款还清贷款所需的总月数。

    输出

    一个实数,表示该贷款的月利率(用百分数表示),四舍五入精确到0.1%。

    样例输入

    1000 100 12
    

    样例输出

    2.9
    
    【分析】等额本息计算公式:〔贷款本金×月利率×(1+月利率)^还款月数〕÷〔(1+月利率)^还款月数-1〕
    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <algorithm>
    #include <climits>
    #include <cstring>
    #include <string>
    #include <set>
    #include <map>
    #include <queue>
    #include <stack>
    #include <vector>
    #include <list>
    #include<functional>
    #define mod 1000000007
    #define inf 0x3f3f3f3f
    #define pi acos(-1.0)
    using namespace std;
    typedef long long ll;
    const int N=105;
    const int M=150005;
    int vis[N];
    int id[N];
    int n,m,k,t;
    double ans;
    bool check(double x)
    {
        x=x/100;
        double q=1;
        for(int i=1;i<=t;i++)q=q*(1+x);
        return n*x*q/(q-1)<=1.0*m;
    }
    int main()
    {
        int i,j;
        scanf("%d%d%d",&n,&m,&t);
        double l=0,r=1000;
        while(r-l>1e-10)
        {
            double mid=(l+r)/2;
            if(check(mid))ans=mid,l=mid;
            else r=mid;
        }
        printf("%.1f
    ",ans);
        //system("pause");
        return 0;
    }
    View Code
  • 相关阅读:
    DELPHI IDFTP
    关于网络的一些小知识
    bootstrap弹出框
    GIt的简单使用
    Ubantu搭建虚拟环境
    python中的随机模块random
    python中动态创建类
    关于深浅拷贝的测试
    关于面向对象的属性访问
    多任务的使用模式
  • 原文地址:https://www.cnblogs.com/jianrenfang/p/5771244.html
Copyright © 2011-2022 走看看