天天看点

ZOJ 3866 - Cylinder Candy

3866 - Cylinder Candy

Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu

Submit 

​​Status​​​ 

​​​Practice​​​ 

​​​ZOJ 3866​​

Description

Edward the confectioner is making a new batch of chocolate covered candy. Each candy center is shaped as a cylinder with radius r mm and height h

The candy center needs to be covered with a uniform coat of chocolate. The uniform coat of chocolate is d

You are asked to calcualte the volume and the surface of the chocolate covered candy.

Input

There are multiple test cases. The first line of input contains an integer T(1≤ T≤ 1000) indicating the number of test cases. For each test case:

There are three integers r, h, d in one line. (1≤ r, h, d

Output

For each case, print the volume and surface area of the candy in one line. The relative error should be less than 10-8.

Sample Input

2
1 1 1
1 3 5      

Sample Output

32.907950527415 51.155135338077
1141.046818749128 532.235830206285      

迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

题意:用巧克力包裹一个圆柱形状的糖果,要求包裹的厚度为d,即包裹后外层距离糖果距离都是d。

给出糖果的高度,底面的半径,与d。

求包裹之后的体积和表面积。

只要你的高数不错,这道题做起来就很简单了,所以……

我被卡在了根号下(a^2-x^2)的原函数这一步了,o(╯□╰)o、用了两个小时,最终终于算出来了,数学题目,一次AC!

#include <iostream>
#include <cmath>
#include <stdio.h>
#include <string>
#include <cstring>
#include <map>
#include <set>
#include <vector>
#include <stack>
#include <queue>
#include <iomanip>
#include <algorithm>
#include <memory.h>
#define PI acos(-1)
using namespace std;
int main()
{
    int n;
    cin>>n;
    for(int i=0; i<n; i++)
    {
        double r,h,d;
        cin>>r>>h>>d;
        double v,s;
        v=2.0*PI*(d*d*r*PI/2.0+2.0/3.0*d*d*d+r*r*d)+(r+d)*(r+d)*h*PI;
        s=2.0*PI*(2*d*d+PI*r*d)+2*PI*r*r+2*PI*(r+d)*h;
        printf("%.12lf %.12lf\n",v,s);
    }
    return 0;
}