Javascript recursive solution
\nvar judgePoint24 = function(cards) {\n  if(cards.length===1) {\n    var roundValue = Math.round(cards[0]*100)/100;\n    return roundValue === 24;\n  }\n\n  fo
```\nvar judgePoint24 = function(cards) {\n  if(cards.length===1) {\n    var roundValue = Math.round(cards[0]*100)/100;\n    return roundValue === 24;\n  }\n\n  for(var i=0; i<cards.length; i++) {\n    for(var j=0; j<cards.length; j++) {\n      if(i===j) continue;\n      var small = Math.min(i,j);\n      var large = Math.max(i,j);\n      var thisCards = cards.slice();\n      thisCards.splice(large,1);\n      thisCards.splice(small,1);\n\n      var iValue = cards[i];\n      var jValue = cards[j];\n      var isValid = false;\n      isValid = isValid || judgePoint24( [iValue+jValue, ...thisCards] );\n      isValid = isValid || judgePoint24( [iValue-jValue, ...thisCards] );\n      isValid = isValid || judgePoint24( [iValue*jValue, ...thisCards] );\n      if(jValue !==0) {\n        isValid = isValid || judgePoint24( [iValue/jValue, ...thisCards] );\n      }\n      if(isValid) return true;\n    }\n  }\n  return false;\n};\n```
[]