永发信息网

汉诺塔问题,我需要统计出总共的步骤数,怎么做,谢谢!

答案:1  悬赏:10  手机版
解决时间 2021-04-08 02:50
  • 提问者网友:献世佛
  • 2021-04-07 08:37
汉诺塔问题,我需要统计出总共的步骤数,怎么做,谢谢!
最佳答案
  • 五星知识达人网友:底特律间谍
  • 2021-04-07 10:03
定义一个全局变量a,然后下面这个函数里加一句语句
void hannoi(int numbers,char place1,char place2,char place3)
{

if(numbers == 1)
{
cout<"< }
else
{
//把N-1个盘子移动到B上。
hannoi(numbers-1,place1,place3,place2);
//把最后一个盘子移动到C上。
cout<"< //把B上的N-1个盘子移动到C上。
hannoi(numbers-1,place2,place1,place3);
}
a++; //新增加的,用来统计hannoi函数被调用了多少次
}追问非常谢谢你,不过放在这里是不对的,需要放在else里面,print一次是一步骤。放在外面执行一次else会计算两次。哇 20的时候需要这么多
  ----------
  -----
  B->C
A->B
A->C
B->C

一共需要1048575步骤完成
[zYJ@localhost c++]$
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯