我编写了代码将十进制数转换为相应的字母表示形式。
示例:
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' );
}
}
上面的代码是working correctly 。我可以在可读性方面优化它吗?
最好的方法是什么?
现在,我想修改上面的代码以使其工作如下:
0: A
1: B
.
.
.
25: Z
26: AA
.
.
.
702: AAA
最明显的方法是将输入的十进制数加 1 并将其传递给原始代码中的函数。 如何修改第一个程序以使其适用于第二种情况而不添加 1?
最佳答案
经过一些观察,我尝试了以下代码及其适用于案例:2
。
void print(int n)
{
if(n < 26)
printf("%c", n + 'A');
else
{
print(n / 26 - 1);
print(n % 26);
}
}
查看输出 here .
关于c - 十进制到 BASE-26 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12237361/