【算法分析】
利用R语言实现此算法时,务必要注意在R函数内需要利用超赋值运算符 <<- 修改全局变量。
【算法代码】
step<-1
move <- function(n,from='x',to='z',by="y"){
if(n==1) cat(step,":",from,"-->",to,"\n")
if(n>1){
move(n-1,from,by,to)
step<<-step+1
cat(step,":",from,"-->",to,"\n")
step<<-step+1
move(n-1,by,to,from)
}
}
move(3)
【运行截图】