提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
快手面试时出的一道算法题,题目很简单,但就是脑袋短路想不出来。菜是原罪吧,简单记录一下提示:以下是本篇文章正文内容,下面案例可供参考
一、题目大意
按excel的列号码生成对应的列名。例如,第1列为A,第2列为B,第26列为Z。第27列为AA,28列为AB,依次类推。
1.输入
输入值 | 含义 |
---|---|
n | excel的列序号 |
2.输出
列序号所在列对应的列名
二、AC代码
代码如下(示例):
package com.company;
import java.util.Scanner;
public class Main {
private static String ans = "";
public static void main(String[] args) {
int n;
Scanner s = new Scanner(System.in);
n = s.nextInt();
System.out.println(solve(n));
// write your code here
}
public static String solve(int n) {
while (n > 0) {//当n大于0时执行循环
int m = n % 26;//求余数m
if (m == 0) m = 26;//当余数为0时,说明n为26的整数倍,此时应该加上'Z',
//所以m要修改为26.否则加上的字符是@
char tempc = (char) (m + 64);//将数字转化为字符
ans = new Character(tempc).toString() + ans;//将字符转化为字符串
n = (n - m) / 26;//往前移位
}
return ans;
}
}