金鱼饭饭


私信TA

用户名:yyy666

访问量:22338

签 名:

等  级
排  名 737
经  验 3838
参赛次数 0
文章发表 36
年  龄 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());  
 }
}

 

 

0.0分

6 人评分

  评论区

牛啊牛啊
2021-03-22 08:43:03
  • «
  • 1
  • »