H5W3
当前位置:H5W3 > 问答 > 正文

用递归解决菱形,还不能使用for语句

用递归解决菱形,还不能使用for语句用递归解决菱形,还不能使用for语句用递归解决菱形,还不能使用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#快速的写了个方法,已经测过了

未经允许不得转载:H5W3 » 用递归解决菱形,还不能使用for语句

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址