问题描述
小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对应 28,AZ 对应 52,LQ 对应 329。
请问 2019 对应的字符串是什么?
问题分析:
(1)这一题使用StringBuilder用来存储转换后的字符,因为StringBuilder可以用来存放可变字符。
(2)直接循环,知道n的值小于或者等于0,每次循环都-1是因为这个数是从1开始计算的,但是计算机是从0开始计算的,所以每一次都得-1,因为n/26的值也是从1开始的。
(3)使用append()方法把值强制转换成char类型存放到我们创建的对象里最后使用reverse()函数让字符颠倒,然后toString()方法输出
解决代码:
package com.exc.dayeleven;
public class ex2 {
public static void main(String[]args)
{
int a=2019;
StringBuilder sc=new StringBuilder();
while (a>0) {
a--;
sc.append((char) (a % 26 + 'A'));
a/=26;
}
System.out.println(sc.reverse().toString());
}
}