可知当盘子数为2时,需要3次才能将盘子全部移动到c。当盘子数为3时,可以想到要首先把最大的盘子移动到c上,显然此时b上就要有前两个盘子,那么将此时的b想象为只有2个盘子时的c盘,那么需要3次移动。将最大盘移动到c需要一次,之后就是需要移动剩下两个盘子,把此时b盘看作一开始的A盘,那么移动这两个盘子就需要3次。综上移动3个盘子需要3+1+3次。以此类推可得4个盘子需要7+1+7次。
f(n)=2f(n-1)+1。
代码实现:
int jie(int n)
{
int num;
if (n > 2)
{
return 2 * jie(n - 1) + 1;
}
else return 3;
}
int main()
{
int n;
int all;
scanf_s("%d", &n);
all=jie(n);
printf("%d", all);
}