用Linux shell脚本编程实现汉诺塔的递归算法-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

用Linux shell脚本编程实现汉诺塔的递归算法

1.通过脚本参数来确定汉诺塔的数量2.利用函数递归调用实现

展开
收起
知与谁同 2018-07-20 19:40:29 2269 0
1 条回答
写回答
取消 提交回答
  • #!/bin/bash
    E_NOPARAM=66
    E_BADPARAM=67
    Moves=0
    dohanoi(){
    case $1 in
    0)
    ;;
    *)
    dohanoi "$(($1-1))" $2 $4 $3
    echo move $2 "-->" $3
    let "Moves += 1"
    dohanoi "$(($1-1))" $4 $3 $2
    ;;
    esac
    }
    case $# in
    1)
    case $(($1>0)) in
    1)
    dohanoi $1 1 3 2
    echo "Total moves = $Moves"
    exit 0;
    ;;
    *)
    echo "$0: illegal value for number of disks"
    exit $E_BADPARAM;
    ;;
    esac
    ;;
    *)
    echo "usage: $0 N"
    echo "Where \"N\" is the number of disks"
    exit $E_NOPARAM;
    ;;
    esac
    2019-07-17 22:55:27
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
ECS运维指南 之 Linux系统诊断
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多
相关镜像