3 回答

TA贡献1803条经验 获得超3个赞
您可以使用以下代码
int size = 4;
string draw = "";
while (size>0) // size is 4
{
size--;
draw += "$";
Console.WriteLine(draw);
}
while (draw.Length > 1)
{
size++;
draw = draw.Substring(0, draw.Length - 1);
Console.WriteLine(draw);
}

TA贡献1868条经验 获得超4个赞
因为每次在 $ 字符后插入一个换行符。我认为您应该使用另一个变量来存储结果。此代码将起作用:
int size = 4;
string draw = "";
int counter = 0;
string res = "";
while (counter < size) // size is 4
{
counter++;
draw += "$";
res += draw + "\n";
}
while (counter > 0)
{
counter--;
draw = draw.Remove(draw.Length - 1, 1);
res += draw + "\n";
}
最好使用 StringBuilder 而不是仅仅连接一个字符串以获得更好的性能:
int size = 4;
int counter = 0;
var sb = new StringBuilder();
while (counter < size) // size is 4
{
counter++;
sb.Append("$");
Console.WriteLine(sb.ToString());
}
要从字符串末尾删除一个字符,您可以使用 Remove 方法,如下所示:
while (counter > 0) // size is 4
{
counter--;
sb.Remove(sb.Length - 1, 1);
Console.WriteLine(sb.ToString());
}

TA贡献2021条经验 获得超8个赞
你参考下面的代码,
https://www.csharpstar.com/10-different-number-pattern-programs-in-csharp/
Console.Write("Enter a number: ");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
for(int i = 1; i < n; i++)
{
for(int j = 1; j <= i; j++)
Console.Write("$");
Console.WriteLine();
}
for(int i = n; i >= 0; i--)
{
for(int j = 1; j <= i; j++)
Console.Write("$");
Console.WriteLine();
}
Console.WriteLine();
- 3 回答
- 0 关注
- 298 浏览
添加回答
举报