Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)C粉丝与汉诺塔

题目描述

 

 

苟利国家生死以,岂因福祸避趋之?作为ACM真正的粉丝,应该都听闻过汉诺塔问题,汉诺塔问题是这样的:

         有三根柱子,编号A,B,C柱,初始情况下A柱上有n个盘子,小盘子在上大盘子在下,n个盘子大小各不一样,每次移动一个最上层的盘子算作一步,大盘子无法移动到小盘子上面,现在要把n个盘子从A柱全部移动到C柱,请问一共需要多少步?

 

 

现在对汉诺塔问题加以限制,每次移动只能经由中间柱实现,即是说如果想从A柱移动到C柱,只能A到B,然后B到C这样移动,反之亦然,那么请问,n个盘子从A柱全部移动到C柱一共需要多少步?

 

输入

 

 

多组输入,每组输入一个正整数n(1<=n<=18)

 

输出

 

每行输出一个正整数答案

样例输入

1
2

样例输出

2
8
 1 #include<stdio.h>
 2 #include<iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     int n;
 7     while(scanf("%d",&n)!=EOF)
 8     {
 9         int ans=0;
10         for(int i=1;i<=n;i++)
11         {
12             ans=ans+(ans+1)*2;
13         }
14         printf("%d\n",ans);
15     }    
16     return 0;
17 } 

 

posted on 2016-11-23 09:15  左岸zero  阅读(461)  评论(0编辑  收藏  举报

导航