*
**
******
**
**
**
******
**
**
**
******
**
*
……………………
类似这种递增再递减的问题。
怎么算比较好

解决方案 »

  1.   

       额。。  还有沙发坐 。。 两个for循环。一个i++,一个i--
      

  2.   


                int len = 5;
                for (int i = 0; i < len; i++)
                {
                    int print = i > len / 2 ? (len - i) * 2 - 1 : i * 2 + 1;
                    Console.Write(new string(' ', (len - print) / 2));
                    Console.WriteLine(new string('*', print));
                }
    /*
                   *
                  ***
                 ***** 
                  ***  
                   *
    */
      

  3.   


    class Program
        {
            public static  void printUpLine(int n)
            {
                for (int i = 1; i <= n; i++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
            public static void printDownLine(int n)
            {
                for (int i = 1; i <= n; i++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }        static void Main(string[] args)
            {
                for (int i = 1; i < 4; i++)
                {
                    printUpLine(i);
                }
                Console.WriteLine("\n\n");
                for (int i = 3; i > 0; i--)
                {
                    printDownLine(i);
                }
            }
        }
      

  4.   

                int len = 6;
                int i = 1;
                while (i <= len)
                {
                    int count = i > len / 2 ? (len - i) + 1 : i;
                    Console.WriteLine(new string('*', count));
                    i++;
                }
    /*
                   *
                   **
                   *** 
                   ***
                   ** 
                   *
    */
      

  5.   

    string[] source = Enumerable.Range(1, 3)
                                .Select(x => new string(Enumerable.Repeat('*').ToArray()))
                                .ToArray();
    string result1 = string.Join("\r\n", Enumerable.Range(0, 3).Select(x => source[x]).ToArray());
    string result2 = string.Join("\r\n", Enumerable.Range(0, 3).Select(x => source[3 - x]).ToArray());
    for (int i = 0; i < 3; i++)
    {
        Console.WriteLine(result1);
        Console.WriteLine(result2);
    }
      

  6.   


            static void Main(string[] args)
            {
                Console.WriteLine(GetTree(3, 3, false, false));
                Console.WriteLine(GetTree(2, 3, true, false));
                Console.WriteLine(GetTree(2, 3, true, true));
                Console.Read();
            }
            /// <summary>
            /// 打印星星
            /// </summary>
            /// <param name="rowMax">最大行数</param>
            /// <param name="cellMax">最大列数</param>
            /// <param name="block">行数按照块规则显示</param>
            /// <param name="group">行数按照对称组规则显示</param>
            /// <returns></returns>
            static string GetTree(int rowMax, int cellMax, bool block, bool group)
            {
                int flag = 1;
                StringBuilder str = new StringBuilder();
                if (block) rowMax = rowMax * cellMax * (group ? 2 : 1);
                for (int i = 0; i < rowMax; i++)
                {
                    if (flag > cellMax || flag == 0)
                    {
                        flag = -(flag - 1);
                    }
                    str.AppendLine(new string('*', Math.Abs(flag)));
                    flag++;
                }
                return str.ToString();
            }
    三个调用的结果:
    1.
    *
    **
    ***2.
    *
    **
    ***
    ***
    **
    *3.
    *
    **
    ***
    ***
    **
    *
    *
    **
    ***
    ***
    **
    *
      

  7.   

    protected void Page_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 5;i++ )
            {
                NewMethod();
            }
            
        }    private void NewMethod()
        {
            int len = 6;
            int i = 1;
            while (i <= len)
            {
                int count = i > len / 2 ? (len - i) + 1 : i;
                Response.Write(new string('*', count));
                Response.Write("<br />");
                i++;
            }
        }