霍诺伊的javascript计数塔

霍诺伊的javascript计数塔,javascript,recursion,counter,Javascript,Recursion,Counter,我试图实现河内塔(递归),但不知道如何编写递归计数器。到目前为止,我有这个 var nomer=0; document.getElementById(“sub”).onclick=function(){ nomer=0; nomer=document.getElementById(“number”).value; 雷舍尼(命名法); } 函数Reshenie(nomer){ return document.getElementById(“Result”).innerHTML=“您的输入是:“

我试图实现河内塔(递归),但不知道如何编写递归计数器。到目前为止,我有这个

var nomer=0;
document.getElementById(“sub”).onclick=function(){
nomer=0;
nomer=document.getElementById(“number”).value;
雷舍尼(命名法);
}
函数Reshenie(nomer){
return document.getElementById(“Result”).innerHTML=“您的输入是:“+nomer.bold()+”磁盘;“+”

总共需要“+(Math.pow(2,nomer)-1)+”移动”; }
输入一个数字。




您可以递归计算2^n-1。设该值为f(n)


这会促使您找到解决方案吗?

github上有很多实现。你看过吗?我不知道你说的“编写递归计数器”是什么意思。您的意思是要使用递归过程计算2^n-1吗?
if n < 1, f(n) => undefined
if n = 1, f(n) => 1
else
  f(n) => 2*f(n-1) + 1
f(n) = 2^n - 1
     = 2 * 2^(n-1) - 1 
     = 2 * 2^(n-1) - 2 + 1 
     = 2 * (2^(n-1) - 1) + 1
     = 2 * f(n-1) + 1