0

我编写了将十进制数转换为相应字母表示的代码。

例子:

1: A
2: B
.
.
.
26: Z
27: AA
.
.
.
703: AAA

这是我的方法:

void print(int n)
{
    if( n > 0 )
    {
        n--;
        print( n / 26 );
        printf( "%c", ( n % 26 ) + 'A' );
    }
}

上面的代码工作正常。我可以在可读性方面对其进行优化吗?
最好的方法是什么?

现在,我想修改上面的代码,使其像这样工作:

0: A
1: B
.
.
.
25: Z
26: AA
.
.
.
702: AAA

显而易见的方法是将输入的十进制数加 1 并将其传递给原始代码中的函数。如何修改第一个程序以使其适用于第二种情况而不添加 1?

4

1 回答 1

1

经过一些观察,我尝试了以下代码及其适用于Case: 2.

void print(int n)
{
    if(n < 26)
        printf("%c", n + 'A');
    else
    {
        print(n / 26 - 1);

        print(n % 26);
    }
}

请参阅此处的输出。

于 2012-09-02T17:24:23.890 回答