ZOJ 3866 Cylinder Candy(对体积和表面积 积分)

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 mm.

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

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 ≤ 100)

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
此二位大神讲得很好~积分对我还是个问题。。
http://blog.csdn.net/doris1104/article/details/45039015
http://blog.csdn.net/david_jett/article/details/45015343#reply
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3866
#include <iostream>  
#include <cmath>   
#include <iomanip>  
#define pi 4*atan(1.0)   
using namespace std;  
int main()  
{  
    int t,r,h,d;  
    cin>>t;  
    while(t--)  
    {  
        cin>>r>>h>>d;  
        cout<<fixed<<setprecision(12)<<2*(2*d*d*d/3.0*pi+r*d*d*pi*pi/2)+pi*((r+d)*(r+d))*(h)+pi*(r*r)*2*d<<" ";  
        cout<<fixed<<setprecision(12)<<2*(pi*pi*d*r+2*pi*d*d)+2*pi*r*r+2*pi*(r+d)*h<<endl;  
    }  
    return 0;  
}  
 

你可能感兴趣的:(ZOJ 3866 Cylinder Candy(对体积和表面积 积分))