题目
解题思路
因为
“AB” = “A” × ( 261 ) + “B” × ( 260 ) = 1 × ( 261 ) + 2 × ( 260 ) = 28
“ZY” = “Z” × ( 261 ) + “Y” × ( 260 ) = 26 × ( 261 ) + 25 × ( 260 ) = 701
所以其实这道题就是一个将 十进制 转换成 伪26进制 的问题,不同的地方在于这个26进制是从1开始的(“A” = 1)而不是从0开始的,所以满26不进位 ( “Z” = 26 ),满27才进位( “AA” = 27 )。
使用了两个内置函数来做这道题:
1、ord()函数:
2、chr()函数:
代码如下:
执行结果为: 看了评论区,发现可以将while循环中的if判断省去:
n-1其实就是将满27进1还原成了满26进1。
结果没有很大区别: