G-Cylinder Candy, Zhejiang University g-cylinder
Cylinder Candy Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge Edward the confectioner is making a new batch of chocolate covered candy. Each candy center is shaped as a cylinder with radiusRMm and heightHMm. The candy center needs to be covered with a uniform coat of chocolate. The uniform coat of chocolate isDMm thick. You are asked to calcualte the volume and the surface of the chocolate covered candy. InputThere 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 integersR,H,DIn one line. (1 ≤R,H,D≤ 100) OutputFor each case, print the volume and surface area of the candy in one line. The relative error shoshould be less than 10-8. Sample Input21 1 11 3 5 Sample Output32.907950527415 51.1551353380771141.046818749128 532.235830206285 |
During the competition, we calculated the volume only in the last minute and relied on our teammates to assist. However, we didn't use calculus at the time. After all, for liberal arts students, calculus was still a little weak, finally, I pushed it out.
The derivation process is attached below. The formula of the curve surface area can only be memorized. I don't know how to prove it.
The formula is derived, and the code is easy to use ~~~
#include <cstdio>#include <cstring>#include <iostream>#include <cmath>using namespace std;#define ll long longconst double PI = acos(-1);int main(){ double r , h ,d; int T; scanf("%d" , &T); while(T--) { scanf("%lf%lf%lf" , &r , &h , &d); double V = 2*PI*(2.0/3*d*d*d + r*r*d + 0.5*PI*d*d*r)+PI*(r+d)*(r+d)*h; double S = 2*PI*(2*d*d+PI*d*r) + 2*PI*r*r + 2*PI*(r+d)*h; printf("%.12f %.12f\n" , V , S); } return 0;}
Learning Mathematics well...