#include
int hanoi(int n){ //定义汉诺塔函数求移动次数。
if(n<2)return 1; //如果只剩一个圈,只移动1次。
else return 2*hanoi(n-1)+1; // 先将A上的n-1个圈移动到B,再将A上最后一个移到C,再将B上的n-1个圈移到C。
} //共2*hanoi(n-1)+1次。
int main()
{
int x,y;
printf("汉诺塔层数:");
scanf("%d",&x);
y=hanoi(x);
printf("需要移动的次数为%d",y);
return 0;
}
输入样例:
汉诺塔层数:8
输出样例:
需要移动的次数为255
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)