题目链接:汉诺塔问题VI.
题目:
分析:
题意是,把一个柱子的n个圆盘分散到三个柱子上,且小圆盘一定在大圆盘上边
当n==1时,有三种情况,就是
- 唯一的圆盘在第一根柱子
- 唯一的圆盘在第二根柱子
- 唯一的圆盘在第三根柱子
当n>1时,对应三种情况,就是
- 在n-1个圆盘的条件下,把新加来的圆盘放在第一根柱子
- 在n-1个圆盘的条件下,把新加来的圆盘放在第二根柱子
- 在n-1个圆盘的条件下,把新加来的圆盘放在第三根柱子
即推出递推公式f(n)=f(n-1)*3;
可以知道通项公式f(n)=3^(n);
AC代码
import java.util.Scanner;
public class 汉诺塔VI {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
while(t-->0){
int n=sc.nextInt();
System.out.println((long)Math.pow(3,n));
}
}
}