1 条题解

  • 0
    @ 2025-9-10 9:00:39

    C :

    #include <math.h>
    #include <stdio.h>
    #define pi (2*acos(0))
    
    double D,V,d,delta;
    
    int i,j,k;
    
    double v(double d){
       double R = D/2;
       double r = d/2;
       double vCyl = D * pi * R * R;
       double vcyl = d * pi * r * r;
       double vCone = pi * (D/2)*(D/2)*(D/2) / 3;
       double vcone = pi * (d/2)*(d/2)*(d/2) / 3;
       double res = vCyl - 2*vCone - vcyl + 2*vcone;
       return res;
    }
    
    main(){
       while (2 == scanf("%lf%lf",&D,&V) && D) {
          delta = d = D/2;
          for (d=D/2; delta > .000000001; delta /=2) {
             if (v(d) < V) d -= delta;
             else d += delta;
          }
          printf("%0.3lf\n",d);
       }
    }
    
    
    • 1

    信息

    ID
    3600
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者