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 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 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 integers r, h, d in one line. (1≤ OutputFor each case, print the volume and surface area of the candy in one line. The relative error should be less than 10-8. Sample Input2 1 1 1 1 3 5 Sample Output32.907950527415 51.155135338077 1141.046818749128 532.235830206285 |
比赛的时候,到最后一分钟才算出体积,而且还是靠队友助攻,但是当时不是用微积分做的,毕竟文科生,微积分还是有点弱的,经大神指导,总算自己推了出来。
下面附上推导过程,曲线表面积那个公式只能死记硬背咯,我也不知道怎么证明。
公式推导出来了,代码就好办啦~~~
#include <cstdio> #include <cstring> #include <iostream> #include <cmath> using namespace std; #define ll long long const 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; }
要好好学数学了...
时间: 2024-11-05 21:58:49