有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆: 每次只能移动一个圆盘; 大盘不能叠在小盘上面。 提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须遵循上述两条规则。
问:如何移?最少要移动多少次?
#include <stdio.h>
long int fa(int);
int main()
{
int a;
long int b;
scanf("%d",&a);
b=fa(a);
printf("%ld",b);
}
long int fa(int x)
{
if(x==2)
return 3;
else return 2*fa(x-1)+1;
}