我正在尝试编写一个函数,该函数采用修订号(int)并将其转换为修订名(字符串)。该公式应产生与此类似的输出:

号码名称
1 安
2 乙
3 C
……
25年
26 Z
27 AA
28 AB
29 交流电
……
第51话
52 AZ
53 BA
54 BB
公元前55年
……

这看起来很简单,但我认为它可能涉及递归,我对此很糟糕。有什么建议么?

最佳答案

我认为这与从列号计算 Excel 列名相同:

private string GetExcelColumnName(int columnNumber)
{
    int dividend = columnNumber;
    string columnName = String.Empty;
    int modulo;

    while (dividend > 0)
    {
        modulo = (dividend - 1) % 26;
        columnName = Convert.ToChar(65 + modulo).ToString() + columnName;
        dividend = (int)((dividend - modulo) / 26);
    }

    return columnName;
}

关于C#代码问题: Revision Numbers and Letters,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1903587/

10-13 03:47