题目描述
Excel 单元格的地址表示很有趣,它使用字母来表示列号。
比如,A 表示第 1 列,B 表示第 2 列,Z 表示第 26 列,AA 表示第 27 列,AB 表示第 28 列,BA 表示第 53 列 ....
当然 Excel 的最大列号是有限度的,所以转换起来不难。
如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?
本题目既是要求对输入的数字,输出其对应的 Excel 地址表示方式。
输入格式
一个正整数。
输出格式
一个字母序列,表示输入数字对应的 Excel 地址表示方式。
数据范围
输入的整数范围 [1,2147483647]。
样例
26
输出样例:
Z
这道题应该不需要什么算法吧!只要知道那些数怎么算就行吧!
Java 代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
char[] ch = new char[10];
int i = 0;
while (n != 0) {
ch[i++] = (char) ((n - 1) % 26 + 'A');
n = (n - 1) / 26;
}
for (int j = i - 1;j >= 0;j--) System.out.print(ch[j]);
}
}