蓝桥杯:年号字串

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小明用字母 �A 对应数字 11,�B 对应 22,以此类推,用 �Z 对应 2626。对于 2727 以上的数字,小明用两位或更长位的字符串来对应,例如 ��AA 对应 2727,��AB 对应 2828,��AZ 对应 5252,��LQ 对应 329329。

请问 20192019 对应的字符串是什么?

运行限制

  • 最大运行时间:1s

  • 最大运行内存: 128M

题目分析

感觉这个题目应该就是26进制的一样的,在第一位就是26的多少次方,然后在乘以字符相对应的位置(例如A代表1),然后每一位都是这样子做

AC代码:

package lanqiaob;

public class 年号字符 {
    public static void main(String[] args) {
        char[] c = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V'
        ,'W','X','Y','Z'};
        int num = 2019 ;
        String s = "" ;
         int sum = 1 ;
         while (num>=26){

             sum = 1 ;
             int num2 = num ;
             while (num2/26>0){
                 num2/=26 ;
                 sum*= 26 ;
             }

             int w = num/sum ;
             s+= c[w-1];
             num = num-sum*w ;
         }
         if (num>0){
             s+= c[num-1];
         }

        System.out.println(s);


    }
}

你可能感兴趣的:(蓝桥杯,算法,java)