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";
}