汉诺塔java和python的实现

本文介绍了经典的递归问题——汉诺塔,并提供了Java和Python两种语言的实现代码。通过递归的方式,实现了从源柱到目标柱的套圈移动过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

汉诺塔是递归经典的应用实例,主要思想是借助中间柱,将源目标柱的套圈移到目标柱:以下为实现代码:
Java

package ms;

import org.junit.Test;

public class Hanoi {
    @Test
    public void test(){
        hanoi(3,"A","B","C");
    }
    public void hanoi(int n, String from, String middle, String to){
        if(n==1)
            move(from,to);
        else{
            hanoi(n-1, from, to , middle);
            move(from, to);
            hanoi(n-1, middle, from, to);
        }
    }
    private void move(String a, String c) {
        System.out.println(a+"----->"+c);
    }
}

python

__author__ = 'home'

def hanoi(n, src, middle, dest):
    if n == 1:
        move(src,dest)
    else:
        hanoi(n-1,src,dest,middle)
        move(src,middle)
        hanoi(n-1,middle,src,dest)

def move(src , dest):
    print(src+"--->"+dest)

hanoi(3,"a","b","c")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值