1. 程式人生 > >集合與泛型典型例題

集合與泛型典型例題

得到 一個 i++ 處理 控制臺輸出 通過 功能 說明 題目

1、數制轉換問題。數制轉換問題是將任意一個非負的十進制數轉換為其它進制的數,這是計算機實現計算的基本問題。其一般的解決方法的利用輾轉相除法。以將一個十進制數N轉換為八進制數為例進行說明。假設N=5142,示例圖:

N N/8(整除) N%8(求余) 低

5142 642 6

642 80 2

80 10 0

10 1 2

1 0 1 高

從圖可知,(5142)10=(12026)8。編寫一個控制臺程序,實現十進制數轉換成八進制數

(提示:轉換得到的八進制數各個數位是按從低位到高位的順序產生的,而轉換結果的輸出通常是按照從高位到低位的順序依次輸出。也就是說,輸出的順序與產生的順序正好相反,這與棧的操作原則相符。所以,在轉換過程中可以使用一個棧,每得到一位八進制數將其入棧,轉換完畢之後再依次出棧。)

答案: Console.WriteLine("輸入十進制數字:");

string s = Console.ReadLine();

int n = Convert.ToInt32(s);

Stack st = new Stack();

int temp;

for (int i = 0; i < s.Length; i++)

{

if (n /8 != 0)

{

temp = n%8;

st.Push(temp);

}

n = n / 8;

}

st.Push(1);

Console.WriteLine("轉化為八進制為:");

foreach (var item in st)

{

Console.Write(item);

}

Console.ReadKey();

技術分享圖片

2、編寫一個控制臺程序,控制臺輸入的數組字符串(如:"123"轉換為中文大寫(如:壹貳叁)。(要求使用Dictonary<T>)

答案: Console.WriteLine("輸入字符串");

string s = Console.ReadLine();

Dictionary<string, string> di = new Dictionary<string, string>();

string temp;

di.Add("0", "零?");

di.Add("1", "壹?");

di.Add("2", "貳?");

di.Add("3", "叁╰");

di.Add("4", "肆á");

di.Add("5", "伍é");

di.Add("6", "陸?");

di.Add("7", "柒a");

di.Add("8", "仈?");

di.Add("9", "九?");

Console.WriteLine("轉化為漢字形式:");

for (int i = 0; i < s.Length; i++)

{

temp = s.Substring(i, 1);

Console.Write(di[temp]);

}

Console.ReadKey();

技術分享圖片

3、編寫一個控制臺程序,實現List<T>的添加、插入、刪除查找、排序等功能。

List<int> li = new List<int>();

li.Add(1);

li.Add(2);

li.Add(9);

li.Add(6);

li.Add(3);

li.Add(7); //添?加ó

foreach (var item in li)

{

Console.WriteLine(item);

}

Console.WriteLine("********");

li.Insert(1, 8); //插?入?

foreach (var item in li)

{

Console.WriteLine(item);

}

Console.WriteLine("********");

li.Remove(8); //移?除y

foreach (var item in li)

{

Console.WriteLine(item);

}

Console.WriteLine("********");

li.Sort(); //排?序ò

foreach (var item in li)

{

Console.WriteLine(item);

}

Console.WriteLine("********");

Console.ReadKey();

技術分享圖片

拓展軟件設計大賽題目

文字祖瑪遊戲需求如下:

1).程序通過控制臺輸出一個字符串,由ABCDE五個字母組成,例如:ACBEEBBAD

2).用戶輸入一個字符,只能是ABCDE其中之一,然後再輸入一個要插入的位置。

3).程序會將這個字符插入到字符串的指定位置前(第一個字符位置為0,第二個字符位置為1,依此類推),然後消除連續出現的三個相同的字符,直到沒有連續三個相同的字符為止。

例如:

控制臺輸出:ACBEEBBAD

用戶輸入:E, 3

控制臺輸出:ACAD

以上示例表示:在位置3插入E後,結果是:ACBEEEBBAD,消除連續的三個E,結果是:ACBBBAD再次消除連續三個B,結果是:ACAD

要求如下:

A.為實現此遊戲,需要設計一個方法DealString()

/**

* 參數:

* str: 原始字符串

* index: 要插入字符的位置

* letter: 要插入的字符

* 返回結果: 經過處理後的字符串

**/

集合與泛型典型例題