wugy315
[i=s] 本帖最后由 wugy315 于

本帖最后由 wugy315 于 2017-11-30 20:53 编辑

其实很简单呀。这是一道时间复杂度只有O(1)的题。

手上没有CPP的IDE。就从算法的角度用Java来提供一种解决方案供参考吧。

public String eatOrNot(double v,char out,double outR,char inside,double insideR) throws Exception{

double vOut,vInside;

switch (out) {

case 'b':

vOut = 4*Math.PI*Math.pow(outR,3)/3;

//Math.PI是java的类库中提供的常量。CPP中没有的话可以作替换。

//Math.pow是java类库中提供的立方计算方法。也可以做相应替换。

break;

case 'c':

vOut = Math.pow(outR, 3);

break;

default:

throw new Exception("小六暂时还变不出这种形状的西瓜呢~");

}

switch (inside) {

case 'b':

vInside = 4*Math.PI*Math.pow(insideR,3)/3;

//Math.PI是java的类库中提供的常量。CPP中没有的话可以作替换。

//Math.pow是java类库中提供的立方计算方法。也可以做相应替换。

break;

case 'c':

vInside = Math.pow(insideR, 3);

break;

default:

throw new Exception("小六暂时还变不出这种形状的西瓜呢~");

}

if ((vOut-vInside)>v) {

return "YES";

}

return "NO";

}