C#如何实现循环打印数字金字塔?
时间: 2024-11-13 19:22:58 浏览: 1
在C#中,如果想要用循环而不是递归来实现数字金字塔,可以使用嵌套循环来控制行和列的变化。下面是一个使用循环的版本,同样会生成121数字金字塔:
```csharp
using System;
class PyramidPrint
{
public static void Main()
{
int rows = 5; // 定义金字塔层数
printPyramid(rows);
}
// 循环打印数字金字塔
private static void printPyramid(int n)
{
int currentLevel = 0;
while (currentLevel <= n)
{
// 每行的空格数
int spaces = n - currentLevel;
// 每行的星号数
int stars = 2 * currentLevel + 1;
// 打印空格
for (int i = 0; i < spaces; i++)
{
Console.Write(" ");
}
// 打印星号和破折号
for (int i = 0; i < stars; i++)
{
if ((i + currentLevel) % 3 == 0) // 每组3个元素:#、*、-
{
Console.Write("#");
}
else if ((i + currentLevel) % 3 == 1)
{
Console.Write("*");
}
else
{
Console.Write("-");
}
}
// 到达新的一行时换行并增加当前层数
Console.WriteLine();
currentLevel++;
}
}
}
```
这段代码将逐行生成金字塔,每一层都有特定数量的空格和星号(或减号)按照特定模式排列。
阅读全文