霍诺伊的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