完美,九九归一蛇形矩阵for powershell
$arr = New-Object 'int[,]' 9,9for($i=0;$i-lt 9;$i++){
for($j=0;$j-lt 9 ;$j++){
$arr[$i,$j]=0
}
}
$dx=-1,0,1,0
$dy=0,1,0,-1
$x=0
$y=0
$d=0
$m=9
$n=9
for($i=1;$i-le $m*$n;$i++){
$arr[$x,$y]=$i
$ax=$x+$dx[$d]
$by=$y+$dy[$d]
if (($ax -lt 0) -or ($ax -ge $m) -or ($by -lt 0 ) -or ($by -ge $n) -or ($arr[$ax,$by] -ne 0) ){
$d=($d+1) % 4
$ax=$x+$dx[$d]
$by=$y+$dy[$d]
}
$x=$ax
$y=$by
}
for($i=0;$i-lt 9;$i++){
$str=""
for($j=0;$j-lt 9 ;$j++){
$str+="{0,5}" -f $arr[$i,$j]
}
Write-Host$str
}
演示效果
PS D:\wpp> ./func.ps1
1 2 3 4 5 6 7 8 9
32 33 34 35 36 37 38 39 10
31 56 57 58 59 60 61 40 11
30 55 72 73 74 75 62 41 12
29 54 71 80 81 76 63 42 13
28 53 70 79 78 77 64 43 14
27 52 69 68 67 66 65 44 15
26 51 50 49 48 47 46 45 16
25 24 23 22 21 20 19 18 17
PS D:\wpp> 这里需要记忆的是比较运算符:
-eq (等于)
-ne (不等于)
-gt (大于)
-ge (大于或等于)
-lt (小于)
-le (小于或等于) 确实是大师,powershell都能玩出花来
页:
[1]