时间限制:1.0s 内存限制:256.0MB 问题描述 Exce濿 单元格的地址表示很有趣,它使用字母来表示列号。 比如, A 表示第 1 列, B 表示第 2 列, Z 表示第 26 列, AA 表示第 27 列, AB 表示第 28 列, BA 表示第 53 列, .... 当然 Exce濿 的最大列号是有限度的,所以转换起来不难。 如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列 呢? 本题目即是要求对输入的数字, 输出其对应的 Exce濿 地址表示方式。 样例输入 26 样例输出 Z 样例输入 2054 样例输出 BZZ 数据规模和约定 我们约定,输入的整数范围[1,2147483647] 峰值内存消耗(含虚拟机) < 256M CPU 消耗 < 1000瀀s 请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。 注意: 瀀ai瀁 函数需要返回 0; 只使用 ANSI C/ANSI C++ 标准; 不要调用依赖于编译环境或操作系统的特殊函数。 所有依赖的函数必须明确地在源文件中 #i瀁c濿ude 不能通过工程设置而省略常用头文件。 提交程序时,注意选择所期望的语言类型和编译器类型
代码:
n = int(input('请输入一个整数:'))
ans = []
while n!= 0:
if n % 26 == 0:
ans.append(26)
n = n // 26 - 1
else:
ans.append(n%26)
n = n // 26
for i in range(len(ans)):
#加64把数字转化成字符,且是从列表最后向前打印
print(chr(ans[len(ans)-i-1]+64), end='')
结果: