我必须编写一个程序,以在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;
}
如果可能的话,我想提出一个原则,允许用户输入所需的三角形高度(应该由多少行组成)。
谢谢您的时间。
答案 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
}
''
每个输出都相同...
*
***
*****
*******
*********