标签:
| Time Limit: 2000MS | Memory Limit: 65536KB | 64bit IO Format: %lld & %llu |
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 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
贴两个找到的代码,然后回家好好学微积分
#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;
} #include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <iomanip>
#include <cmath>
using namespace std;
#define pai acos(-1.0)
int T;
double r, h, d;
int main(){
scanf("%d", &T);
while(T--){
scanf("%lf%lf%lf", &r, &h, &d);
double v, area;
v = (pai*r*d*d*asin(1.0) + pai*(2.0/3.0*d*d*d + r*r*d))*2 + (r+d)*(r+d)*pai*h;
area = 2*(2*pai*d*d + 2*pai*r*d*asin(1.0)) + 2*pai*r*r + 2*pai*(r+d)*h;
printf("%.12lf %.12lf\n", v, area);
}
return 0;
}ZOJ - 3866 Cylinder Candy (数学,积分)
标签:
原文地址:http://blog.csdn.net/qq_18738333/article/details/45069147