- UID
- 364002
- 在线时间
- 0 小时
- 最后登录
- 1970-1-1
- 注册时间
- 2013-2-10
- 宅魂
- 3568 点
- 贡献
- 4905 点
- 宅币
- 41842 枚
- 灵石
- 170 块
- 元气(技能点)
- 21 点
- 活跃
- 562 ℃
- 听众
- 7
- 收听
- 0
签到天数: 62 天 连续签到: 1 天 [LV.6]常住居民II
第三章
流光一瞬,离愁一身。
- 积分
- 68492
|
发表于 2017-11-30 20:47:32
|
显示全部楼层
本帖最后由 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";
- }
复制代码 |
|