P1163 银行贷款

坑点:

  1. 月利率可能大于1,二分范围要定在1~5
  2. 需要还的钱,随每个月的利息和还钱数变化
#include<iostream>
using namespace std;

double m, n;
int k;

int check(double v){
    double sum = m;
    for(int i = 0; i < k; i ++) sum = sum * (1 + v) - n;
    if(sum >= 0) return 1;
    return 0;
}

int main(){
    cin >> m >> n >> k;
    
    double l = 0, r = 5;
    
    while(r - l >= 1e-4){
        double mid = (l + r) / 2;
        if(check(mid)) r = mid;
        else l = mid;
    }
    
    printf("%.1lf", l * 100);
    
    return 0;
}
posted @ 2020-10-12 12:19  yys_c  阅读(66)  评论(0编辑  收藏  举报