HDU-1996-汉诺塔VI
题目链接
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的更多相关文章
- HDU 1996汉诺塔VI
		
题目: n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列.由于 发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱 子从下往上的大小仍保持 ...
 - HDU 1996 汉诺塔VI (排列组合)
		
题意:... 析:每次都是有三种放法,1,2,3,根柱子,所以就是3^n次方. 代码如下: #pragma comment(linker, "/STACK:1024000000,102400 ...
 - HDUOJ---1996汉诺塔VI
		
汉诺塔VI Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
 - 汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI
		
汉诺塔 汉诺塔II hdu1207: 先说汉若塔I(经典汉若塔问题),有三塔.A塔从小到大从上至下放有N个盘子.如今要搬到目标C上. 规则小的必需放在大的上面,每次搬一个.求最小步数. 这个问题简单, ...
 - HDU 1207 汉诺塔II (找规律,递推)
		
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1207 汉诺塔II Time Limit: 2000/1000 MS (Java/Others) ...
 - HDU 2077 汉诺塔IV (递推)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2077 还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是 ...
 - HDU 2064 汉诺塔III (递推)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2064 约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下.由小到 ...
 - hdu 1207 汉诺塔II (DP+递推)
		
汉诺塔II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
 - HDU 2064 汉诺塔III
		
汉诺塔III Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
 - HDU 2064 汉诺塔III(递归)
		
题目链接 Problem Description 约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下.由小到大顺序串着由64个圆盘构成的塔.目的是将最左边杆上的盘 ...
 
随机推荐
- opencart添加任意页面到导航栏(修改一级菜单)
			
pencart默认的黑色导航栏只显示分类目录下的一级分类,这块整个网页中最显眼的“风水宝地”怎么能让他闲置呢,因此我想到了为opencart导航栏添加自定义页面,它可以连接到任意一个网址或者ope ...
 - log4j配置日志系统
			
1. lib里加入3个包 slf4j-api, slf4j-log4j12, log4j 2. 在src下 创建log4j.properties ### direct log messages to ...
 - Sublime 2 配置
			
在队友的推荐下,爱上了这款神一样的文本编辑器,熟练之后编辑效率真心是大幅提升啊. 一.Package Control Sublime拥有很强大的插件功能,而自带的缺少个管理工具,这个包可以用来很方便地 ...
 - POJ 2653 Pick-up sticks
			
计算几何,判断线段相交 注意题目中的一句话:You may assume that there are no more than 1000 top sticks. 我认为是没有描述清楚的,如果不是每次 ...
 - CentOS 6.4 x64 postfix + dovecot + 虚拟用户认证
			
第一, 首先必须安装 apacache mysql php CentOS 直接使用 yum 安装 yum -y install httpd httpd-devel mysql php-mysql ...
 - 解决phpcms V9缩略图模糊的方法
			
解决V9缩略图模糊/libs/classes/image.class.php注释掉else imagecopyresized($thumbimg, $srcimg, 0, 0, $psrc_x, ...
 - AOP:代理实现方式①通过继承②通过接口
			
文件结构: 添加日志: package com.wangcf.manager; public class LogManager { public void add(){ System.out.prin ...
 - 第三弹:ZFNet
			
在所有深度网络中,卷积神经网和图像处理最为密切相关,卷积网在很多图片分类竞赛中都取得了很好的效果,但卷积网调参过程很不直观,很多时候都是碰运气.为此,卷积网发明者Yann LeCun的得意门生Matt ...
 - 在Android studio环境下使用EventBus
			
EventBus是一个订阅/发布消息总线,实现在应用程序里面,组件之间,线程之间的通信.因为event是任意的类型,所以这个使用起来非常方便. eventbus中的角色: event:当然就是事件啦 ...
 - ubuntu下如何安装和卸载wine-qq
			
1.安装wine 按ctrl+alter+T打开终端输入以下两条命令 sudo apt-get update sudo apt-get install wine 安装时间有点长,请耐心的等候 2.按钮 ...