powershell 汉洛塔
#powershell 汉洛塔
#可变长数组Collections.ArrayList操作
#递归函数
#文字排版和配色
function hanoi($n)
{
$global:num=0
$global:arraya=New-Object Collections.ArrayList
$global:arrayb=New-Object Collections.ArrayList
$global:arrayc=New-Object Collections.ArrayList
$global:arraya.addrange(1..$n)
Write-Host $("初始状态:").PadLeft(13) -NoNewline
Write-Host ($global:arraya -join ",").PadRight(9) -NoNewline
Write-Host ($global:arrayb -join ",").PadRight(9) -NoNewline
Write-Host ($global:arrayc -join ",").PadRight(9)
function go($n,$a,$b,$c)
{ if($n -eq 1){ $global:num++if($a -eq "a" -and $c -eq "b"){$s1="a";$a1="--> ";$s2="b ";$a2="";$s3=""$global:arrayb.Insert(0,$global:arraya[0])$global:arraya.Removeat(0)}if($a -eq "a" -and $c -eq "c"){$s1="a";$a1="";$s2="---->";$a2="";$s3="c"$global:arrayc.Insert(0,$global:arraya[0])$global:arraya.Removeat(0) }if($a -eq "b" -and $c -eq "a"){$s1="a";$a1="<-- ";$s2="b ";$a2="";$s3=""$global:arraya.Insert(0,$global:arrayb[0])$global:arrayb.Removeat(0) }if($a -eq "b" -and $c -eq "c"){$s1=" ";$a1="";$s2="b ";$a2="-->";$s3="c"$global:arrayc.Insert(0,$global:arrayb[0])$global:arrayb.Removeat(0) }if($a -eq "c" -and $c -eq "a"){$s1="a";$a1="";$s2="<----";$a2="";$s3="c"$global:arraya.Insert(0,$global:arrayc[0])$global:arrayc.Removeat(0) }if($a -eq "c" -and $c -eq "b"){$s1=" ";$a1="";$s2="b ";$a2="<--";$s3="c"$global:arrayb.Insert(0,$global:arrayc[0])$global:arrayc.Removeat(0) } Write-Host $("第$num`步:").PadLeft(15) -NoNewlineWrite-Host "$($s1)" -ForegroundColor 3 -NoNewline -BackgroundColor 15Write-Host "$($a1.PadLeft(17))" -ForegroundColor 1 -NoNewline -BackgroundColor 15Write-Host "$($s2.PadRight(12))" -ForegroundColor 9 -NoNewline -BackgroundColor 15Write-Host "$($a2.PadLeft(6))" -ForegroundColor 1 -NoNewline -BackgroundColor 15Write-Host "$($s3.PadLeft(12))" -ForegroundColor 12 -BackgroundColor 15Write-Host $("当前状态:").PadLeft(13) -NoNewlineWrite-Host ($global:arraya -join ",").PadRight(18) -NoNewlineWrite-Host ($global:arrayb -join ",").PadRight(12) -NoNewlineWrite-Host ($global:arrayc -join ",").PadLeft(18)}else{go ($n-1) $a $c $bgo 1 $a $b $cgo ($n-1) $b $a $c}}
go $n "a" "b" "c"
}hanoi 4
powershell 汉洛塔相关推荐
- c语言程序代码应缩进几格,汉诺塔c语言程序代码
汉诺塔c语言程序代码(通过vc++6.0验证)(附讲解) 让我们先看看代码吧 #include int hj(int a,int b, int c,int i) { int t; if(i==1) p ...
- 洛谷 P1242 新汉诺塔
原题链接 题目描述 设有n个大小不等的中空圆盘,按从小到大的顺序从1到n编号.将这n个圆盘任意的迭套在三根立柱上,立柱的编号分别为A.B.C,这个状态称为初始状态. 现在要求找到一种步数最少的移动方案 ...
- 汉诺塔(三)_栈的应用
问题 E: 汉诺塔(三) 时间限制: 3 Sec 内存限制: 128 MB 提交: 2 解决: 2 [提交][状态][讨论版] 题目描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北 ...
- 汉诺塔怎么加计数次数c语言,C语言计算汉诺塔最小移动步数 (二)
前几天写的:C语言计算汉诺塔最小移动步数(一) 当时还不知道用2^n-1这个公式来求解汉诺塔移动步骤.=_= 偶然间在网上发现了这个公式,发现当时写的算法还是比较繁琐的.所以又根据这个公式又写了一个. ...
- Ka的递归编程练习 Part4|Hanoi汉诺塔,双色汉诺塔的也有
1 #include <stdio.h> 2 void hanoi(int s,char a,char b,char c) //a是出发盘,b是中途盘,c是结束盘 3 { 4 if(s== ...
- 技术图文:如何实现汉诺塔问题?
背景 最近在辅导小孩们学习编程,在介绍函数递归时,最典型的就是汉诺塔问题了. 我在这里总结一下,以方便大家的学习. 汉诺塔问题源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在 ...
- 汉诺塔问题---小昝
C语言 #include <stdio.h> void move(char A,char C){printf("%c ---> %c\n",A,C); }void ...
- 轻松理解汉诺塔问题(图解java描述)
引言:(易于理解) 汉诺塔看似简单的几行代码,却蕴含着奇妙的算法.我从我个人学习的角度来说.我一开始理解了原理,但是编码不会编,这也就是所谓的眼高手低.多研究多在IDE(eclipse-java,VS ...
- 栈与队列5——汉诺塔问题(方案二)
题目 汉诺塔问题的基础上,增加限制,必须得经过中间,不能直接从左到右或从右到左,求当塔有N层的时候打印最优移动过程和最优移动总步数 要求 法一:递归法 法二:非递归法,用栈来模拟 解析 法二:非递归法 ...
- 栈与队列5——汉诺塔问题
题目 汉诺塔问题的基础上,增加限制,必须得经过中间,不能直接从左到右或从右到左,求当塔有N层的时候打印最优移动过程和最优移动总步数. 要求 法一:递归法 法二:非递归法,用栈来模拟 解析 法一:主要分 ...
最新文章
- hbase的shell客户端中不同符号的含义
- sqlserver2000 mdf 文件导入
- APICloud学习笔记之窗体跳转
- mac上使用终端生成RSA公钥和密钥
- python正则表达式教程_Python中正则表达式的巧妙使用一文包你必掌握正则,
- C#正则表达式提取HTML中IMG标签中的SRC地址
- 基于机器学习与BERT的在线招聘欺诈检测平台
- [Postgres] Group and Aggregate Data in Postgres
- 用数据库表填充下拉列表框
- 使用Python对Dicom文件进行读取与写入
- web页面和ssh登陆到防火墙
- 杜邦线改成焊线_做杜邦线(假)教程
- $.ligerDialog弹出对话框
- 垃圾小白羊leetcode刷题记录3
- 搭建自己的简易服务器(公网)
- 软件工程导论课程总结
- 华为与「DaoCloud 道客」推出面向元宇宙的云边协同超融合一体机
- 销售宝:没有销售技巧,能做软件销售么?大神一针见血解答
- 91.91p06xcm71xyz./index.php?,http://email.91dizhi.at.gmail.com.e9p.work/php
- python输入数字比大小_Python练习实例47 | 比较任意两个数字的大小
热门文章
- C/C++ Linux 键盘检测
- so easy(并查集)
- 「React 基础」组件生命周期函数componentDidMount()介绍
- SpringBoot应用生成RESTful API文档 - Swagger 2.0、OAS 3.0、Springfox、Springdoc、Smart-doc
- OAS、Swagger和Springfox
- 仓库调用 RAP接口管理平台
- 任正非:《一江春水向东流》
- Hills And Valleys(贪心/枚举)
- Android系统各个版本发布时间
- 最全UnityHub下载链接Unity2022~2017各版本+Unity5.x【间歇性更新】