• XX面试题


    是一题笔试题,也没有什么难点,当时写这道题的时候太唐突了,
    今天回来再机子上重新完善完善了

    题面:请打印以下图形

       *
      ***
     *****
    *******
     *****
      ***
       *
     
    class Program
        {
            
    private const string flag = "*";
            
    private const char snull = ' ';
            
    private const int length = 7;

            
    /// <summary>
            
    /// 主函数
            
    /// </summary>
            
    /// <param name="args"></param>
            static void Main(string[] args)
            {
                
    //----------正向打印
                for (int i = 0; i <= length; i++)
                    
    if (i % 2 != 0)
                        PrintFlag(i);

                
    //-----------反向打印
                for (int i = length - 2; i > 0; i--)
                    
    if (i % 2 != 0)
                        PrintFlag(i);

                Console.Read();
            }

            
    /// <summary>
            
    /// 打印标记
            
    /// </summary>
            
    /// <param name="currentIndex">当前索引</param>
            static void PrintFlag(int currentIndex)
            {
                
    string t = string.Empty, s = string.Empty;
                
    for (int i = 0; i < currentIndex; i++)
                {
                    t 
    += flag;
                }
                s 
    = GetLocation(currentIndex, t);//获取字符串及所在位置
                Console.WriteLine(s);
            }

            
    /// <summary>
            
    /// 获取“标记”位置
            
    /// </summary>
            
    /// <param name="currentIndex">当前索引</param>
            
    /// <param name="flag">标记</param>
            
    /// <returns></returns>
            static string GetLocation(int currentIndex, string flag)
            {
                
    int totalcount = length;
                
    if (currentIndex == totalcount)
                    
    return flag;

                
    int startlocation = (totalcount - currentIndex) / 2;//中间位置
                string temp = flag.PadLeft(startlocation + currentIndex, snull);//前置空白
                temp = temp.PadRight(totalcount, snull);//后置空白
                return temp;
            }
        }




    如果有更好的方法,希望大家多补充哈
  • 相关阅读:
    微软新一代Surface,该怎么看?
    Windows 8创新之路——样章分享
    微软新一代Surface发布,参数曝光
    从MS Word到Windows Live Writer
    《计算机科学基础》学习笔记_Part 1 Computer and Data
    我看Windows 8.1
    Hyper-V初涉_早期Windows安装虚拟硬件驱动
    2020.09.05【省选组】模拟 总结
    2020.08.15【NOIP提高组】模拟 总结
    2020.08.14【省选B组】模拟 总结
  • 原文地址:https://www.cnblogs.com/wfcfan/p/1579758.html
Copyright © 2020-2023  润新知