文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PowerShell实现的小算法

PowerShell实现的小算法

时间:2010-05-04  来源:dobear_0922

问题描述: 1. n=1时,输出一个字符'x' x 2. n=2时,在x的左上角,右上角,左下角,右下角分别输出一个x x x  x x x 3. n=2时,在2输入图案的四角分别再输出一个n=2时的图案 x x   x x
 x     x
x x   x x
   x x
    x
   x x
x x   x x
 x     x
x x   x x
4. n=m+1时,在n=m输出的图案基础上,在四个角上分别输出一个n=m输出的图案。   PowerShell递归实现代码:    

##计算一个小正方形的空格区域

function get-Blanks($lev)
{
    [string]$blank = ''
    [int]$totalWidth = [Math]::pow(3, $lev-1);
    $blank = $blank.PadRight($totalWidth, ' ');
    $blanks = $blank, $blank, $blank;
    while($totalWidth -gt 3)
    {
        $blanks = $blanks+$blank;
        $totalWidth -= 1;
    }
    
    return $blanks;
}

##计算n=$lev时的图案

function Get-Stars($lev)
{
    if($lev -eq 1)
    {
        $starts1 = 'x'
        return $starts1
    }
    
    if($lev -eq 2)
    {
        $starts2 = 'x x', ' x ', 'x x'
        return $starts2
    }
    
    $sub = Get-Stars ($lev-1)
    $bla = Get-Blanks ($lev-1)    
    $Line1 = Get-Blanks ($lev-1)
    $Line2 = Get-Blanks ($lev-1)
    1..$bla.Length | %{ $Line1[$_-1] = $sub[$_-1]+$bla[$_-1]+$sub[$_-1]; $Line2[$_-1] = $bla[$_-1]+$sub[$_-1]+$bla[$_-1]}
    $starts = $Line1+$Line2+$Line1
    
    return $starts
}

##输出图案:

'n=1'
Get-Stars 1
'n=2'
Get-Stars 2
'n=3'
Get-Stars 3
'n=4'
Get-Stars 4
'n=5'
Get-Stars 5


输出结果:

n=1
x
n=2
x x
 x
x x
n=3
x x   x x
 x     x
x x   x x
   x x
    x
   x x
x x   x x
 x     x
x x   x x

......
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载