zoukankan      html  css  js  c++  java
  • 绘制倒三角形

    这是很多公司面试的时候出的面试题,最近在面试,所以就写了写

    1. 实心的倒三角

    代码如下:

    /// <summary>
    /// 这个画的是实心的倒三角 ▽
    /// 这个只需要画两种字符串就行,空字符串和*****
    /// </summary>
    /// <param name="length"></param>
    public static void DrawSolid(int length)
    {
        int flag = length / 2;
        //确定循环次数
        for (int i = 0; i <= flag; i++)
        {
            //画空白字符串
            Console.Write(GetBlank(i));
            //画 ***
            Console.WriteLine(GetStar(length - i * 2));
        }
    }
    

    其中的GetBlank和GetStar方法分别是画空格和*,代码如下:

    /// <summary>
    /// 根据count数获取星星字符串
    /// </summary>
    /// <param name="count"></param>
    /// <returns></returns>
    private static string GetStar(int count)
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < count; i++)
        {
            sb.Append('*');
        }
        return sb.ToString();
    }
    
    /// <summary>
    /// 根据count数获取空格字符串
    /// </summary>
    /// <param name="count"></param>
    /// <returns></returns>
    private static string GetBlank(int count)
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < count; i++)
        {
            sb.Append(' ');
        }
        return sb.ToString();
    }
    

    最后结果如下图:

    2. 空心倒三角形

    代码如下:

    /// <summary>
    /// 画只有边的倒三角形
    /// 思路:我把它理解为由三种字符串组成:****、空字符串、*空字符串*组成
    /// 
    /// </summary>
    /// <param name="length"></param>
    public static void DrawOnlySide(int length)
    {
        //画出第一行的*
        Console.WriteLine(GetStar(length));
        int flag = length / 2;
        for (int i = 1; i <= flag; i++)
        {
            //画空格
            Console.Write(GetBlank(i));
            //画*   *
            Console.WriteLine(GetStarBlankStar(length - i * 2));
        }
    }
    

    其中的GetStarBlankStar方法是画出:*   * 这种字符串,代码如下:

    /// <summary>
    /// 获得*   *,这种字符串
    /// </summary>
    /// <param name="length">字符串总长度</param>
    /// <returns></returns>
    private static string GetStarBlankStar(int length)
    {
        if (length <= 0)
            return "";
        StringBuilder sb = new StringBuilder();
        sb.Append('*');
        for (int i = 1; i <= length - 2; i++)
        {
            sb.Append(' ');
        }
        if (length >= 2)
            sb.Append('*');
        return sb.ToString();
    }
    

    最后结果如下图:

    到此,画三角形就结束了。

    其它的三角形跟这个大同小异,在此就不去写了,希望对大家有帮助。

  • 相关阅读:
    【Linux_Unix系统编程】Chapter4 文件IO
    【Unix网络编程】chapter6 IO复用:select和poll函数
    【Unix网络编程】 chapter5 TCP客户,服务器程序实例
    【Unix网络编程】chapter3 套接字编程简介
    VS自动编译脚本
    【Python编程:从入门到实践】chapter4 操作列表
    【Python编程:从入门到实践】chapter3 列表简介
    【Python编程:从入门到实践】chapter2 变量和简单数据类型
    【Unix网络编程】chapter2传输层:TCP,UDP和SCTP
    vim配置编辑php
  • 原文地址:https://www.cnblogs.com/taohonggou/p/6416101.html
Copyright © 2011-2022 走看看