码迷,mamicode.com
首页 > 其他好文 > 详细

万圣节的糖果(Halloween Sweets)

时间:2015-06-25 17:10:26      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

今天遇到codewars的一道题,这是链接,讲的是关于万圣节的一个题目,简单点说,就是9个包裹,一个天平,两次称的机会,怎么找出9个包裹中唯一一个较重的包裹。

像我这种年轻时候喜欢研究难题获得存在感的蠢材,觉得很开心,因为这是我为数不多还记得答案的小学题。包裹分成三堆,取两个堆一称,可以得到哪个是比较中的一堆,然后再在这个异常的堆里选择两个称,找到嫌疑犯X。

于是我开始码代码

 

function pick(bags, scale) {
  switch(scale.weigh([bags[0],bags[1],bags[2]], [bags[3],bags[4],bags[5]])){
    case 0:switch(scale.weigh([bags[6]],[bags[7]])){
              case 0:return bags[8];
                     break;
              case 1:return bags[7];
              case -1:return bags[6];
            }
            break;
   case 1:switch(scale.weigh([bags[3]],[bags[4]])){
             case 0:return bags[5];
             case 1:return bags[4];
             case -1:return bags[3];
             }
             break;
   case -1:switch(scale.weigh([bags[0]],[bags[1]])){
             case 0:return bags[2];
             case 1:return bags[1];
             case -1:return bags[0];
             }
             break;
  }
}

 

呵呵呵呵

觉得有点开心啊,写完第一个case,开始复制粘贴,轻松加愉快。为什么只给我了一点KATA!

于是去看best solution。

function pick(bags, scale) {
  bags = [bags.slice(0,3), bags.slice(3,6), bags.slice(6)];
  var scaleResult = scale.weigh(bags[0], bags[2]);
  

  bags = bags[scaleResult+1];
  var scaleResult = scale.weigh([bags[0]], [bags[2]]);

  
  return bags[scaleResult+1];
}

 唉。

何时能长大啊,自然语言和程序语言的差别啊。

P.S.试了一下幼圆字体,着急啊。

万圣节的糖果(Halloween Sweets)

标签:

原文地址:http://www.cnblogs.com/thinkxzx/p/4600188.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!