腾讯实习笔试第二题

示例过了,输出也是小数后10位,为啥一直是0%呢?大佬解答下,快看自闭了。
int main(){
  int T;
  cin >> T;
  int A,B,C;
  for (int i(0);i<T;++i){
    while(cin >> A >> B >> C);
    double delta=(A-2*B*C)/(A*pow(B,2));
    double area=0;
    if (delta<=0) area=0;
    else {
        double x1=A/B+A*sqrt(delta);
        double x2=A/B-A*sqrt(delta);
        area=(pow(x1,2)/(2*B))-(C*x1/B)-(pow(x1,3)/(6*A))-(pow(x2,2)/(2*B))+(C*x2/B)+(pow(x2,3)/(6*A));
        area=fabs(area);
    }
    cout.precision(10);
    cout << fixed << area <<endl;
  }
  return 0;
}


#腾讯实习##腾讯##实习##笔试题目#
全部评论
好像还有一种情况是C大于0的时候
点赞 回复 分享
发布于 2020-04-26 22:10
蹲一个答案,不明白通过率为什么一直是0
点赞 回复 分享
发布于 2020-04-26 22:10
一共几套题,我为什么没有这一题
点赞 回复 分享
发布于 2020-04-26 22:17
# 第二题 import sys import math T = int(sys.stdin.readline().strip()) ABCs = [] for i in range(T):     line = sys.stdin.readline().strip()     values = list(map(int, line.split()))     ABCs.append(values) for i in range(T):     a = ABCs[i][0]     b = ABCs[i][1]     c = ABCs[i][2]     if (4 * a * a - 8 * a * b * c) <= 0:         print(0)         continue     y1 = (2 * a + math.sqrt(4 * a * a - 8 * a * b * c)) / (2 * b)     y2 = (2 * a - math.sqrt(4 * a * a - 8 * a * b * c)) / (2 * b)     if y1 < y2:         y1, y2 = y2, y1     s1 = (1 / (2 * b)) * y1 * y1 - (c / b) * y1 - (1 / (6 * a)) * y1 * y1 * y1     s2 = -(1 / (2 * b)) * y2 * y2 + (c / b) * y2 + (1 / (6 * a)) * y2 * y2 * y2     print(s1 + s2)
点赞 回复 分享
发布于 2020-04-26 22:17
老哥做出来几道
点赞 回复 分享
发布于 2020-04-26 22:18

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务