本题写出前三个数据,然后自己演算一边叠盘过程,即可看出公式。很明显n个盘,每个盘移到最右边都需要3次操作,所以,公式可知为3的n次方,但需要注意的是,此时算了一次将盘放入塔中的次数,所以,减一。可知,该公式为3的n次方减一。变成代码如下。
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
long long int n;
防无脑抄答案
while (scanf("%lld", &n) != EOF)
{
long long int x=3;
for (int i = 1; i < n; i++)
x = 3 * x;
printf("%lld\n", x - 1);
}
return 0;
}