2016年小米校招笔试第一题(成都站)
1 在Excel中,列的名称是这样一个递增序列:seq={A、B、C、... Z、AA、AB、AC、... AZ、BA、BB、BC、... BZ、CA、... ZZ、AAA、AAB...}。求给出任意一个自然数n,求这个序列中第n个字符串。函数声明:String getColumnLable(int n)
参考解法(Java版):
package XiaoMi;
public class test16 {
/*************************************
* @param args
* 算法思想:分别求每一位的字符,从后向前求
************************************/
public static void main(String[] args) {
// TODO Auto-generated method stub
test16 t = new test16();
System.out.println(t.getColumnLable(675556));
}
String getColumnLable(int n) {
String tmp = "";
// 按位找
int count = 1;
while (((int) (n / Math.pow(26, count-1)) > 0)) {
int w3 = ((int) (n % Math.pow(26, count)) / (int) Math.pow(26, count - 1));
char c = (char) (w3 + 65);
tmp = c + tmp;
count++;
}
return tmp;
}
}
运行结果:
BMLIY