有天,突然被一個進修的朋友問到程式迴圈的相關的問題,他邊問,我邊回答的很心虛!

仔細想想迴圈與陣列,算是程式的基礎,而我………對他們卻很陌生。

所以翻出以前學校老師要我們做的測驗題..練習一下!!

題目如下:

1.  輸入一個數字,讓星號(*)按順序排列成下列圖形

例如:輸入數字4

**

***

****

解題:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace PT_HelloWord //命名空間

{

    class Program //宣告類別

    {

        static void Main(string[] args)

        {

            System.Console.WriteLine("請輸入數字:");//輸出主控台

            int Z = int.Parse(Console.ReadLine());//讓變數Z等同輸入的數字

 

            string Y = "";

            for (int i = 0; i < Z; i++)

            {

                string X = "*";

                if (i == 0)

                {

                    Y = X;

                }

                else

                {

                    Y = X + Y;

                }

                System.Console.WriteLine(Y);//輸出主控台

}

}

}

另外的解法:

        static void Main(string[] args)

        {

            System.Console.WriteLine("請輸入數字:");//輸出主控台

            int Z = int.Parse(Console.ReadLine());//讓變數Z等同輸入的數字

            for (int i = 0; i < Z; i++)

            {

                for (int j = 0; j < i + 1; j++)

 

                {

                    System.Console.Write("*");

                }

                System.Console.Write("\n");

            }

     }

 

2.  輸入一個數字,讓星號(*)按順序排列成下列圖形1

例如:輸入數字3

**

***

**

解法1:

        static void Main(string[] args)

        {

System.Console.WriteLine("請輸入數字:");//輸出主控台

            int Z = int.Parse(Console.ReadLine());//讓變數Z等同輸入的數字

            for (int i = 0; i < Z; i++)

            {

                for (int j = 0; j < i + 1; j++)

 

                {

                    System.Console.Write("*");

                }

                System.Console.Write("\n");

            }

 

            for (int i = Z - 1; i >= 0; i--)

            {

                for (int j = 0; j < i  ; j++)

                {

                    System.Console.Write("*");

                }

                System.Console.Write("\n");

            }

}

 

解法2:

        static void Main(string[] args)

        {

System.Console.WriteLine("請輸入數字:");//輸出主控台

            int Z = int.Parse(Console.ReadLine());//讓變數Z等同輸入的數字

            for (int i = 1; i <= 2 * Y - 1; i++)

            {

                string X = "";

                for (int j = 1; j <= (i <= Y ? i : (i - 2 * (i - Y))); j++)

                {

                    X += "*";

                }

                System.Console.WriteLine(X);

            }

            System.Console.ReadLine();

      }

 

 

寫完之後,赫然發現,解題方法真的不少。有機會真的要多多練習!!

PS:參閱不少前輩的文章,都有清楚的提到,基礎觀念越正確,會協助你的思緒更清楚更強大。

炎龍牙 發表在 痞客邦 PIXNET 留言(0) 人氣()