问题:
已知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(); }
效果: