题目链接

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. HDU 2087 剪花布条(KMP基础应用)

    KMP基础,注意输入 #include<cstdio> #include<cstring> #include<iostream> using namespace s ...

  2. B. Qualifying Contest

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...

  3. JAVA基础--super关键字

    子类对象new的时候堆里的内存分配: 1. 父类成员变量 2. 子类成员变量 3. this对象指向自己 4. super对象指向父类 super调用父类的方法: class FatherClass ...

  4. js中的 AOP

    原文 :http://blog.csdn.net/notejs/article/details/8770575 面向切面的编程(AOP)还是有点意思的,可以在不修改原有代码的情况下增加新功能.有一些j ...

  5. PAT 天梯赛 L2-1 紧急救援

    Dijkstra算法扩展 题目链接 解题代码如下: #include<cstdio> #include<iostream> #include<algorithm> ...

  6. ecos的app机制

    底层->支持层->业务 底层base 数据库访问 service管理 app管理 kvstore存储 kvcache缓存 支持层 pam登录验证 dbeav数据库扩展功能 site前台 d ...

  7. ios 中在容器中移除单个控件的两个方法Subview

    我们知道[parentView removeFromSuperView];  会把全部的view都移除.以下我们可以通过给subView设一个tag,然后遍历所有的subView,找到目标subVie ...

  8. CodeForces 660D Number of Parallelograms

    枚举两点,确定一条线段,计算每条线段的中点坐标. 按线段中点坐标排个序.找出每一种坐标有几个. 假设第x种坐标有y个,那么这些线段可以组成y*(y-1)/2种平行四边形. 累加即可. #include ...

  9. 模块之字节编译的.pyc文件---from.import语句

    字节编译的.pyc文件输入一个模块相对来说是一个比较费时的事情,所以Python做了一些技巧,以便使输入模块更加快一些.一种方法是创建 字节编译的文件 ,这些文件以.pyc作为扩展名.字节编译的文件与 ...

  10. utf8_unicode_ci与utf8_general_ci

    下面摘录一下Mysql 5.1中文手册中关于utf8_unicode_ci与utf8_general_ci的说明: 当前,utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法.一 ...