2014年广州市信息学尖子选拔赛 第一题
来源:互联网 发布:天下信用的数据哪来的 编辑:程序博客网 时间:2024/04/27 14:01
提交文件:hanoi.exe
输入文件:hanoi.in
输出文件:hanoi.out
题目描述:
你对经典的hanoi塔问题一定已经很熟悉了。有三根柱子,n个大小不一的圆盘,要求大盘不能压在小盘上,初始时n个圆盘都在第一根柱子上,最少要多少步才能挪到最后一根柱子上?
现在我们来将hanoi塔扩展一下,由三根柱子扩展到四根柱子,其余规则不变。例如,3个圆盘,四根柱子A到D,初始时圆盘都A柱上,我们用五步就可以将圆盘都挪到D柱上:
第一步:将圆盘1从A挪到B;
第二步:将圆盘2从A挪到C;
第三步:将圆盘3从A挪到D;
第四步:将圆盘2从C挪到D;
第五步:将圆盘1从B挪到D。
你的任务是写一个程序求解四柱子hanoi塔问题最少要多少步可以解决。
输入格式(light.in):
输入只有一行,为一个正整数n。(1<=n<=1000)
输出格式(light.out):
输出为一个正整数,代表n盘四柱子hanoi塔问题最少要多少步可以解决。
样例
hanoi.in hanoi.out
3 5
#include<cstdio>int i,k,n,s;int main(){ freopen("hanoi.in","r",stdin); freopen("hanoi.out","w",stdout); scanf("%d",&n); switch(n){ case 1:{ printf("%d",1); return 0; } case 2:{ printf("%d",3); return 0; } } n--;i=2;k=2;s=1; while(true){ if(n>i){ n=n-i; s=s+i*k; i++; k=k*2; } else{ s=s+n*k; break; } } printf("%d",s);}
0 0
- 2014年广州市信息学尖子选拔赛 第一题
- 2014年广东省青少年信息学竞赛中山市选拔赛 投票
- 2014 BUAA 选拔赛第一场
- 【广州市选2014】Tree
- 百度之星第一场选拔赛第一题
- 【广州市选2014】Tree(tree)
- JZOJ3601. 【广州市选2014】Tree
- 2015NCHU第一届ACM新生选拔赛A题题解
- 2015NCHU第一届ACM新生选拔赛B题题解
- 2015NCHU第一届ACM新生选拔赛C题题解
- 2015NCHU第一届ACM新生选拔赛D题题解
- 2015NCHU第一届ACM新生选拔赛F题题解
- 2015NCHU第一届ACM新生选拔赛G题题解
- 2015NCHU第一届ACM新生选拔赛H题题解
- 2015NCHU第一届ACM新生选拔赛I题题解
- 2015NCHU第一届ACM新生选拔赛J题题解
- 2015NCHU第一届ACM新生选拔赛赛题说明
- 2015NCHU第一届ACM新生选拔赛E题题解
- 满二叉排序树
- 高质量程序设计(笔记)
- MFC用代码实现屏蔽ESC和Enter键按下,对话框窗体关闭或者消失的问题
- Codeforces Round #330 (Div. 2) B. Pasha and Phone 容斥定理
- openjudge 2748:全排列
- 2014年广州市信息学尖子选拔赛 第一题
- ROS Robotics Projects(3)嵌入式硬件和外设
- 一起来学ES6—let变量
- 2017 C4天梯 L1-039. 古风排版
- SPFA 最短路 —— POJ 1062 昂贵的聘礼
- 第七章
- VS2012 ToolsVersion="12.0" 设置,但此工具集未知或缺失
- 《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》读书笔记(下)
- 算24点(DFS)