河内塔

它是由法国数学家爱德华·卢卡斯于1883年发明的。给定一个由8个圆盘组成的塔,这些圆盘按照大小递减的方式套在三根桩柱中的一根上。目的是要将整个塔移动到另一根桩柱上,每次只能移动一个圆盘,且较大的圆盘在移动过程中不能放置在较小的圆盘上面。
卢卡斯给这个玩具赋予了一个罗曼蒂克的传说,说的是一个大得多的婆罗贺摩塔(Tower of Brahma),它由64个纯金的圆盘堆放在三座钻石做成的方尖塔上。他说,上帝一开始把这些金圆盘放到了第一座方尖塔上,并命令一组牧师按照上面的规则把他们移动到第三座方尖塔上,据说牧师们夜以继日地工作,当他们完成任务时,那座塔就将坍塌,世界也将毁灭。
我想你也肯定发现了这道题的规律:2²-1

//64圆盘
import java.math.BigDecimal;
public static void main(String[] args){
        BigDecimal bd=BigDecimal.ONE.add(BigDecimal.ONE);
        System.out.println(bd.pow(64).subtract(BigDecimal.ONE));
    }
// 详细步骤
//  public class 河内塔{
//      static int count=0;
//      public static void main(String[] args){
//          fun(64,'A','B','C');
//          System.out.println(count);
//      }
//      public static void fun(int n,char a,char b,char c){
//          if(n==1){
//              count++;
//              System.out.println(a+"->"+c);
//              return;
//          }   
//          fun(n-1,a,c,b);
//          count++;
//          System.out.println(a+"->"+c);
//          fun(n-1,b,a,c);
//          }
//  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值