用递归解决菱形,还不能使用for语句
回答
void CreatDiamond(int height, char content) {
if (height < 0 || height % 2 == 0)
{
return;
}
string log = GetContent(height, content);
System.Console.Write(log);
}
string GetContent(int height, char content, int row = 0, int column = 0)
{
int half = height / 2;
int rowIndex = row <= half ? row : height - 1 - row;
if (row == height - 1 && column == half)
{
return content.ToString();
}
else if (half == column - rowIndex)
{
return content + "\n" + GetContent(height, content, row + 1, 0);
}
else
{
//第一个字符的位置
int firstContent = half - rowIndex;
if (column < half && column < firstContent)
{
return " " + GetContent(height, content, row, column + 1);
}
else
return content + GetContent(height, content, row, column + 1);
}
}
用C#快速的写了个方法,已经测过了
以上是 用递归解决菱形,还不能使用for语句 的全部内容, 来源链接: utcz.com/a/63239.html