时间限制:1.0s 内存限制:256.0MB
问题描述 Excel 单元格的地址表示很有趣,它使用字母来表示列号。
比如, A 表示第 1 列,
B 表示第 2 列,
Z 表示第 26 列,
AA 表示第 27 列,
AB 表示第 28 列,
BA 表示第 53 列,
.... 当然 Excel的最大列号是有限度的,所以转换起来不难。 如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列 呢?
本题目即是要求对输入的数字, 输出其对应的 Excel 地址表示方式
样例输入
26
样例输出
Z
样例输入
2054
样例输出
BZZ
看到这个问题的一开始,我以为是一个普通的26进制转化问题。但细细琢磨了一下,发现了几个盲点。
1->数字0是不存在对应的字母的.
2->根据数字53是BA,那么数字52是谁?B0?
这两个盲点可以通过,样例2054来解决。2054 <-> BZZ。
那么我们能够想到数字52对应的是AZ。
有了这个隐藏条件,得出代码。
代码如下:
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> check(int n); // 返回一个stack
void tra