题解 | #封闭图形的面积#

封闭图形的面积

http://www.nowcoder.com/practice/e8423459fd554a3984cc1d7b6059c0c9

  1. delta大于0
  2. 记住求根公式。
  3. 最后写出积分式然后反解积分式带入就行。
#include<bits/stdc++.h>
using namespace std;

//就是数学题推导
int main(){
    int T;
    cin>>T;

    while(T--){
        int A,B,C;
        cin>>A>>B>>C;

        int a = B*B, b = 2*B*C-2*A, c = C*C;
        int delta = b*b - 4*a*c;
        if(delta<=0){ //若交点小于两个,直接返回0
            cout<<"0"<<endl;
        }else{
            double x1 = (-b + sqrt(delta))/(2*a);
            double x2 = (-b - sqrt(delta))/(2*a);

            double y1 = B*x1 + C;
            double y2 = B*x2 + C;
            // 易知y1大于y2(B > 0, x1 > 0, x2 > 0)

            double res = (y1*y1-y2*y2)/(2*B) + (y2-y1)*C/B + (y2*y2*y2-y1*y1*y1)/(6*A);

            cout<<res<<endl;
        }
    }

    return 0;
}
大厂笔试题题解 文章被收录于专栏

主要是公司笔试题得一些总结

全部评论

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务