看到一同学发了个高中的数学题,一时想用编程方法来练练算法,虽然很简单,就当锻炼一下逻辑,毕竟很少有时间再接触这些了。
题目:一个七层的塔,每层所点灯的盏数都等于上面一层的2倍,一共381盏灯,则底层所点灯的盏数是?
我用的递归方法,也没啥好说的,比较传统的方法:
<!doctype html> <html> <script type="text/javascript"> var key=1,num=0,s=1,add=1; function findKey(s,num,key,add){//alert(s+","+num+","+key+","+add); s = add*2 + s; add = add * 2; if(num==5){ if(s==381){alert(key);} else { key++; num=0; add=key; s=key; findKey(s,num,key,add); } }else{ num++; findKey(s,num,key,add); } } findKey(s,num,key,add); </script> </html>