题目
用过excel的都知道excel的列编号是这样的:
a b c ...z aa ab ac ... az ba bb bc ...yz za zb zc ...Zz aaa aab aac ...分别代表以下编号:
123....26 2728 2. ...52 53 54 5 ...76 67767867....702703704 705 ...请写个函数,完成从一个正整数到这种字符串之间的转换。
输入描述:一行,一个数字
输出描述:excel样式的字符串
示例1:
输入∶1
输出:a
示例2:
输入∶26
输出:z
示例3:
输入:27
输出:aa
思路
26进制的转换问题
题解
java
package hwod;
import java.util.Scanner;
public class ExcelId {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int k = sc.nextInt();
System.out.println(excel2Id(k));
}
private static String excel2Id(int k) {
String template = "abcdefghijklmnopqrstuvwxyz";
StringBuilder sb = new StringBuilder();
do {
sb.append(template.charAt((k - 1) % 26));
k = (k - 1) / 26;
} while (k > 0);
return sb.reverse().toString();
}
}
推荐
如果你对本系列的其他题目感兴趣,可以参考华为OD机试真题及题解(JAVA),查看当前专栏更新的所有题目。
说明
本专栏所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_31076523/article/details/134176793。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。