P1163银行贷款

思路:
浮点二分
每次check当前利率:在month个月内是否能还完这笔钱,若能还完,则合法
下面的代码是向左找的
剩余总贷款量remain=remain*(1+月利率rate)-每月分期付款金额pay
#include<bits/stdc++.h>
#define EPI 1e-5
using namespace std;
double loan,pay,month;
double lft,rgt,mid,res;
double check(double x)
{
double remain=loan;
for(int i=1;i<=month;++i)
remain=remain*(1+x)-pay;
return remain;
}
int main()
{
cin>>loan>>pay>>month;
lft=0,rgt=3;
while((rgt-lft)>EPI){
mid=(lft+rgt)/2;
res=check(mid);
if(res<0)
lft=mid;
else
rgt=mid;
}
lft=100*lft;
printf("%.1lf",lft);
return 0;
}

浙公网安备 33010602011771号