本文主要是介绍2021腾讯笔试 - 计算抛物线与直线的面积,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:
- 直接积分: 计算交点,求积分公式带入即可(注意积分有两种形式,按y轴积分更简单)
- 抛物线弓形面积:阿基米德算法 直接上结论(抛物线与直线为成的面积等于直线的平行线与抛物线的切点和该直线与抛物线两交点组成的三角形面积 s*4/3)
先计算与抛物线相切且与直线平行时的切点,然后用海伦公式计算三角形的面积
- 只提供积分方式的解
#include <bits/stdc++.h>
using namespace std;
int main(){int T;double a, b, c;cin >> T;while ( T --){cin >> a >> b >> c;double delta = ((b*c-a)*(b*c-a)-b*b*c*c);if (delta <= 0){cout << 0 << endl;continue;}double x2 = (a-b*c + sqrt(delta))/(b*b);double x1 = (a-b*c - sqrt(delta))/(b*b);double y2 = b*x2+c;double y1 = b*x1+c;double ans = -1/(6*a)*(pow(y2, 3) - pow(y1, 3)) + 0.5/b*(y2*y2-y1*y1)-c/b*(y2-y1);cout << ans << endl;}
}
这篇关于2021腾讯笔试 - 计算抛物线与直线的面积的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!