POJ 2405 Beavergnaw C++版

题目链接:http://poj.org/problem?id=2405

2405

纯数学问题,给出D和咬去的V求d,先开始一直再查圆台的体积公式,是这样的:
V=πh(R2+Rr+r2)/3
r-上底半径
R-下底半径
h-高

然而解方程真不方便,后来看到大神用定积分来解题,一下觉得自己高数没学好,真实损失大,直接d的三次方-6v除派再开三次方

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*Problem: 2405		User: awq123
**Memory: 276K Time: 0MS
**Language: C++ Result: Accepted
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iomanip>
using namespace std;

int main()
{
//freopen("input.txt", "r", stdin);
int d,v;
while(cin>>d>>v&&d;&&v;)
cout<<fixed<<setprecision(3)<<pow(d*d*d-6*v/3.1415926,1.0/3)<<endl;


}