金鱼饭饭


私信TA

用户名:yyy666

访问量:383

签 名:

排  名 5493
经  验 264
参赛次数 0
文章发表 3
年  龄 0
在职情况 在职
学  校 不知道学院
专  业

  自我简介:

我愿能朝着太阳生长,做一个温暖的人,不卑不亢,清澈生活!

解题思路:

    定义数组存储26个字母

    1. 取余得最后一个字母

    2. 除法得前边的字母

    重复1,2,知道最后结果小于26

注意事项:

    如果被整除,取余得结果取最后一个值

参考代码:

import java.util.Scanner;
    
public class Demo01 {
 public static void main(String[] args) {
  //  初始化
  String temp = "ABCDEFGHIGKLMNOPQRSTUVWXYZ";
  char[] letter = temp.toCharArray();
  // 输入
  Scanner sc = new Scanner(System.in);
  int num = sc.nextInt();
  
  // 判断
  StringBuilder sb = new StringBuilder(); // 选择StringBuilder,是因为它有速度优势
  while(num>26){
   int a = num%26;
   // 如果刚好被除尽,取最后一个值Z,并且num值要-1
   if(a==0){ 
    a=26;
    num-=26;
   }
   // 取余得到最后一个值
   sb.insert(0, letter[a-1]);
   // 得到新的结果
   num /= 26;
  }
  sb.insert(0, letter[num-1]);
  
  // 输出
  System.out.println(sb.toString());  
 }
}

 

C语言网提供「C语言、C++、算法竞赛」在线课程,全部由研发工程师或ACM金牌退役选手亲自授课,以视频+配套题目的学练同步模式教学,强化动手,并提供增值服务!

  评论区