[汉诺塔][第二阶段-汉诺塔入门][HDOJ-2077]汉诺塔IV
来源:互联网 发布:金山软件框架 编辑:程序博客网 时间:2024/06/10 01:31
Problem Description
还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到小盘的上面。xhd在想如果我们允许最大的盘子放到最上面会怎么样呢?(只允许最大的放在最上面)当然最后需要的结果是盘子从小到大排在最右边。
Input
输入数据的第一行是一个数据T,表示有T组数据。
每组数据有一个正整数n(1 <= n <= 20),表示有n个盘子。
每组数据有一个正整数n(1 <= n <= 20),表示有n个盘子。
Output
对于每组输入数据,最少需要的摆放次数。
Sample Input
2110
Sample Output
219684
这题思路也很简单
N用来储存 第n大的盘子以上的部分 每次移动到下一个柱子需要的次数
所以 每次只需要 移动上面的盘子一次 然后 移动最大盘子两次 在移动上面的盘子一次
import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);long[] num = new long[21];long[] N = new long[21];N[0]=0;int i;for(i=1;i<21;i++)N[i]=3*N[i-1]+1;for(i=1;i<21;i++)num[i]=2+2*N[i-1];int m = in.nextInt();while(m>0){int n = in.nextInt();System.out.println(num[n]);m--;}}}
0 0
- [汉诺塔][第二阶段-汉诺塔入门][HDOJ-2077]汉诺塔IV
- HDOJ 2077 汉诺塔IV
- hdoj 2077 汉诺塔IV
- hdoj 2077汉诺塔IV
- HDOJ 2077 汉诺塔IV
- hdoj.2077 汉诺塔IV 20140808
- [汉诺塔][第二阶段-汉诺塔入门][HDOJ-1995]汉诺塔V
- [汉诺塔][第二阶段-汉诺塔入门][HDOJ-1996]汉诺塔VI
- [汉诺塔][第二阶段-汉诺塔入门][HDOJ-2064]汉诺塔III
- [汉诺塔][第二阶段-汉诺塔入门][HDOJ-2175]汉诺塔IX
- ACM HDOJ 汉诺塔IV
- (Java实现)HDOJ 2064 汉诺塔III && 2077 汉诺塔IV
- HDOJ 题目2077汉诺塔IV(递推)
- hdu 2077 汉诺塔IV
- hdu 2077 汉诺塔 IV
- HDU 2077 汉诺塔IV
- HDU 2077 汉诺塔IV
- hd 2077 汉诺塔IV
- Select和epoll的区别
- 几个页面跳转以及传值(通知传值)
- 【C++ Primer】【学习笔记】【第十章】关联容器之:map类型
- 数据结构课程设计03
- LeetCode--Sort Colors
- [汉诺塔][第二阶段-汉诺塔入门][HDOJ-2077]汉诺塔IV
- visualgo动态学习数据结构
- 比特币网络的弱点(三)
- java.lang.ClassNotFoundException: org.slf4j.LoggerFactory异常处理
- LeetCode172——Factorial Trailing Zeroes
- 汇编学习的一些个人建议
- HDOJ-4276(树形DP+背包DP)
- poj 2456 Aggressive cows(贪心+二分)
- org.springframework.web.servlet.handler.SimpleUrlHanderMapping异常处理