题目链接

http://acm.hdu.edu.cn/showproblem.php?pid=1996

其实它就是求移动的所有可能,也就是n个盘子摆在三个塔上的任何可能的种数。可以这么思考这个问题:n个盘子分开摆在三个塔上,
所有可能的种数(这个和高中时候的一个信封投递到邮箱的问题很类似,那个是4封信投到3个邮箱,求投的种数的);n个盘子,每个
盘子有3种摆法,所以n个盘子摆在3个塔上的摆法就有3的n次幂种。知道这个规律之后,我们的问题就迎刃而解了。

代码

#include<stdio.h>
#include<math.h>

int main(void)
{
int n,t;
while(scanf("%d",&t)==1)
{
while(t--)
{
scanf("%d",&n);
printf("%I64d\n",(__int64)(pow(3,n)+0.5));//精度处理因为3可能为2.999999999999,如果在强制转换就变成2了。

}
}
return 0;
}

代码

#include<stdio.h>
#include<math.h>

int main(void)
{
int t,n;
while(scanf("%d",&t)==1)
{
while(t--)
{
scanf("%d",&n);
printf("%.0lf\n",pow(3,n));
}
}
return 0;
}

代码

#include<stdio.h>
#include<math.h>

int main(void)
{
int i;
for(i=1;i<=29;i++)
printf("%I64d %.0lf\n",(__int64)(pow(3,i)),pow(3,i));
return 0;
}

输出

3 3
9 9
27 27
81 81
243 243
729 729
2187 2187
6561 6561
19683 19683
59049 59049
177147 177147
531441 531441
1594323 1594323
4782969 4782969
14348907 14348907
43046721 43046721
129140163 129140163
387420489 387420489
1162261467 1162261467
3486784401 3486784401
10460353202 10460353203
31381059609 31381059609
94143178826 94143178827
282429536481 282429536481
847288609442 847288609443
2541865828329 2541865828329
7625597484986 7625597484987
22876792454961 22876792454961
68630377364882 68630377364883

这就是区别。

HDU-1996-汉诺塔VI的更多相关文章

  1. HDU 1996汉诺塔VI

    题目: n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列.由于 发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱 子从下往上的大小仍保持 ...

  2. HDU 1996 汉诺塔VI (排列组合)

    题意:... 析:每次都是有三种放法,1,2,3,根柱子,所以就是3^n次方. 代码如下: #pragma comment(linker, "/STACK:1024000000,102400 ...

  3. HDUOJ---1996汉诺塔VI

    汉诺塔VI Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  4. 汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI

    汉诺塔 汉诺塔II hdu1207: 先说汉若塔I(经典汉若塔问题),有三塔.A塔从小到大从上至下放有N个盘子.如今要搬到目标C上. 规则小的必需放在大的上面,每次搬一个.求最小步数. 这个问题简单, ...

  5. HDU 1207 汉诺塔II (找规律,递推)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1207 汉诺塔II Time Limit: 2000/1000 MS (Java/Others)     ...

  6. HDU 2077 汉诺塔IV (递推)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2077 还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是 ...

  7. HDU 2064 汉诺塔III (递推)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2064 约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下.由小到 ...

  8. hdu 1207 汉诺塔II (DP+递推)

    汉诺塔II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  9. HDU 2064 汉诺塔III

    汉诺塔III Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  10. HDU 2064 汉诺塔III(递归)

    题目链接 Problem Description 约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下.由小到大顺序串着由64个圆盘构成的塔.目的是将最左边杆上的盘 ...

随机推荐

  1. Allegro PCB -内层分割,比如电源层需要分割几种电源

    内层分割,比如电源层需要分割几种电源. (1).点击Display -> Assign Color 在Option中,先取一种颜色作为高亮显示的颜色. (2).在Find中,选Net,点击mor ...

  2. javascript类的继承

    1.构造函数方式写类,通过方法调用复制父类属性/字段到子类 实现继承 这里父类,子类都采用构造函数方式写,不用原型.子类调用父类函数来复制父类的属性. 1 2 3 4 5 6 7 8 9 10 11 ...

  3. Super Jumping! Jumping! Jumping! 基础DP

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  4. Halcon相关

      1.Halcon的自我描述 Program Logic Ø Each program consists of a sequence of HALCON operators Ø The progra ...

  5. MC34063+MOSFET扩流 12V-5V 折腾出了高效率电路(转)

    源:http://www.amobbs.com/thread-5484710-1-1.html 从网上找到一些MC34063扩流降压电路图,一个个的试,根本达不到我的基本要求,全都延续了34063的降 ...

  6. Hibernate批量提交

    的 批量插入(Batch inserts) 如果要将很多对象持久化,你必须通过经常的调用 flush() 以及稍后调用 clear() 来控制第一级缓存的大小. Session session = s ...

  7. Js apply call方法详解

    Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...

  8. Windwos下 php mysql apache 环境配置

    一.下载所需软件: 1.安装Windows组件: 安装Apache的前  必须安装  VC11 vcredist_x86.exe (64位请下载vcredist_x64.exe),选择时尽量选择英文版 ...

  9. java XML转JSON格式

    标签: XML转Json json 2014-05-20 20:55 6568人阅读 评论(6) 收藏 举报  分类: [J2SE基础](20)  代码如下所示,从这个例子中发现了代码库的重要性,如果 ...

  10. HUST 1601 Shepherd

    间隔小的时候dp预处理,大的时候暴力..正确做法不会... dp[i][j]表示以i为开头,间隔为j的和,递推:dp[i][j] = dp[i + j][j] + a[i] 测试数据中间隔可能是0.. ...