题意:给出直角三角形两条直角边a,b,求这两条边的和比斜边c多了多长,结果要求精度<1e-6.
这有什么好说的?用二分而不是sqrt()就完事了(
#include<bits/stdc++.h> using namespace std; int main() { double a,b,c; cin>>a>>b; double lef=0,rig=a+b; while(lef+(1e-9)<rig) { double mid=(lef+rig)/2; if(a*a+b*b>mid*mid)lef=mid; else rig=mid; } printf("%7lf",a+b-lef); return 0; }