Powershell 5用星号绘制一个三角形

时间:2018-11-05 21:17:12

标签: powershell

我必须编写一个程序,以在Powershell 5中从星号(*)绘制一个三角形。

据我所知,“ using_system”部分存在问题...

这是我现在写的:

using_System;
static int Main(){
for (int i = 0; i -lt 5; i++)
    {
    for (int x = 0; x -lt 5; x++)
    {
    Console.Write(" ");
    }

    for (int j = 5 - i; j -gt 0; j--)
    {
    Console.Write(" ");
    }

    for (int k = 0; k -lt 2 * i + 1; k++)
    {
    Console.Write("*");
    }
    Console.Write("\n");
}
clear-host
return 0;
}

如果可能的话,我想提出一个原则,允许用户输入所需的三角形高度(应该由多少行组成)。

谢谢您的时间。

2 个答案:

答案 0 :(得分:1)

决定写一个可能效率不高的书,但它会使三角形变成三角形

function BuildTriangle([int]$Size){
    $OrignalSize = $Size
    $Count = 0
    while($Size -gt 0){
        $($Size) | %{
        if($Size -eq $OrignalSize){
                "$('*'.PadLeft([math]::Floor(($_))," "))"
            }elseif($Size -gt 1){
                "$('*'.PadLeft([math]::Floor(($_))," "))$(@(1..$Count) | %{" "})*"
            }else{
                "$(@(1..$($Count+1)) | %{"*"})"
            }
        }
        $Count += 1
        $Size -= 1
    }

}

BuildTriangle -Size 5

答案 1 :(得分:1)

这是完成这项工作的两种方法。第一种尝试遵循C ++代码,而第二种尝试采用“构建字符串”方法...两者都输出一个5行高的金字塔,其基数为9个字符。

for ($i= 0; $i-lt 5; $i++)
    {
    for ($x = 0; $x -lt 5; $x++)
        {
        Write-Host ' ' -NoNewline
        }

    for ($j = 5 - $i; $j -gt 0; $j--)
        {
        Write-Host ' ' -NoNewline
        }

    for ($k = 0; $k -lt 2 * $i+ 1; $k++)
        {
        Write-Host '*' -NoNewline
        }
    Write-Host ''
    }

“对我来说更强大” ...

$HowTall = 5
$Padding = $HowTall - 1
$AsteriskCount = 1

Clear-Host
''

foreach ($HT_Item in 1..$HowTall)
    {
    $Spaces = ' ' * $Padding
    $Asterisks = '*' * $AsteriskCount

    $Spaces + $Asterisks + $Spaces

    $Padding --
    $AsteriskCount += 2
    }

''

每个输出都相同...

    *    
   ***   
  *****  
 ******* 
*********