
正文
NET 已知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 > )
{
Console.WriteLine($"超过最大数-{26 * 26},请重新输入!");
WriteExcelTitle();
return;
}
// 余数
var remainder = num % pageSize;
var sb = new List<string>();
for (int i = ; i < pageTotal; i++)
{
var itemIndex = i;
// 个数等于总数,余数为0,取最后一个
if (remainder == )
{
itemIndex = pageSize - ;
}
else if (i == pageTotal - )
{
// 最后一个集合,用余数-1做下标
itemIndex = remainder - ;
}
var itemStr = list[itemIndex];
sb.Add(itemStr);
}
Console.WriteLine(string.Join("-", sb));
WriteExcelTitle();
}
效果:







