汉诺塔问题,我需要统计出总共的步骤数,怎么做,谢谢!
答案: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++]$
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<
hannoi(numbers-1,place2,place1,place3);
}
a++; //新增加的,用来统计hannoi函数被调用了多少次
}追问非常谢谢你,不过放在这里是不对的,需要放在else里面,print一次是一步骤。放在外面执行一次else会计算两次。哇 20的时候需要这么多
----------
-----
B->C
A->B
A->C
B->C
一共需要1048575步骤完成
[zYJ@localhost c++]$
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |