問題: 已知excel表格前面26個是a到z,27是aa28是ab,以此類推,N是多少 代碼: 效果: ...
問題:
已知excel表格前面26個是a到z,27是aa28是ab,以此類推,N是多少
代碼:
/// <summary> /// 已知excel表格前面26個是a到z,27是aa28是ab /// 以此類推,寫個演算法,N是多少 /// </summary> private static void WriteExcelTitle() { Console.WriteLine("請輸入需要列印的數字:"); var numStr = Console.ReadLine(); // 子母集合 var list = new List<string> { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", }; var pageSize = list.Count; // 需要列印的個數 var numBoo = int.TryParse(numStr, out int num); // 有多少次迴圈: 27=2 var pageTotal = Math.Ceiling(num / (float)pageSize); if (pageTotal > 26) { Console.WriteLine($"超過最大數-{26 * 26},請重新輸入!"); WriteExcelTitle(); return; } // 餘數 var remainder = num % pageSize; var sb = new List<string>(); for (int i = 0; i < pageTotal; i++) { var itemIndex = i; // 個數等於總數,餘數為0,取最後一個 if (remainder == 0) { itemIndex = pageSize - 1; } else if (i == pageTotal - 1) { // 最後一個集合,用餘數-1做下標 itemIndex = remainder - 1; } var itemStr = list[itemIndex]; sb.Add(itemStr); } Console.WriteLine(string.Join("-", sb)); WriteExcelTitle(); }
效果: