精度二分,40分求助
查看原帖
精度二分,40分求助
205782
R浩轩泽Anmicius楼主2021/9/14 20:48

题目:银行贷款

//#pragma GCC optimize(2)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
double t,p,m,ans;
double binaryl(double l,double r){
	while(l<r-0.0001){
		double mid=(l+r)/2;
		double w=t;
		for(int i=1;i<=m;++i)
		w=w-p+w*(mid/100);
		if(w>0.0001)r=mid;
		else l=mid;
	}
	return l;
}
inline int read(){
	int x=0,f=1;char ch=getchar();
	while(!isdigit(ch)){
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(isdigit(ch)){
		x=x*10+(ch^48);
		ch=getchar();
	}
	return x*=f;
}
signed main(){
	t=read();
	p=read();
	m=read();
	ans=binaryl(0,3);
	printf("%.1lf\n",round(ans*10)/10);
	return 0;
}

还是找不出问题......万万没想到会被一道二分卡两个晚自习(悲

觉得精度二分这种东西应该秒切来着

这次的csp果然要赛前退役了罢

2021/9/14 20:48
加载中...