汉诺塔问题,是心理学实验研究常用的任务之一。该问题的主要材料包括三根高度相同的柱子和一些大小及颜色不同的圆盘,三根柱子分别为起始柱A、辅助柱B及目标柱C。
//汉诺塔n盘移动次数
#include<stdio.h>
void main(){
double g(int m);
int n;
printf("请输入盘片数n:");
scanf("%d",&n);
if(n<=40)
printf("%d盘的移动次数:%.0f\n",n,g(n));
else
printf("%d盘的移动次数为:%.4e\n",n,g(n));
}
//求移动次数的递归函数
double g(int m)
{
double s;
if(m==1)
s=1;
else
s=2*g(m-1)+1;
return s;
}