TL;DR Vous pouvez facilement le convertir en alphabet en convertissant le nombre en caractère.
Main.java
public class Main {
public static void main(String[] args) throws Exception {
for (int i = 0; i < 26; i++) {
System.out.print((char) (97 + i) + " ");
}
}
}
Main.java
public class Main {
public static void main(String[] args) throws Exception {
for (int i = 0; i < 26; i++) {
//Vous pouvez aussi écrire comme ça**
System.out.print((char) ('a' + i) + " ");
}
}
}
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
Cité de ABC171C
Roger a décidé de garder tous les 1000000000000001 chiens qui lui sont soudainement apparus. Les chiens étaient numérotés à l'origine de 1 à 1000000000000001, mais Roger leur a donné des noms selon les règles suivantes: Les chiens numérotés 1,2, ⋯, 26 sont nommés a, b, ..., z dans cet ordre. Les chiens numérotés 27,28,29, ⋯, 701, 702 sont nommés aa, ab, ac, ..., zy, zz dans cet ordre. Les chiens numérotés 703,704,705, ⋯, 18277,18278 sont nommés aaa, aab, aac, ..., zzy, zzz dans cet ordre. Les chiens numérotés 18279,18280,18281, ⋯, 475253,475254 sont nommés aaaa, aaab, aaac, ..., zzzy, zzzz dans cet ordre. Les chiens numérotés 475255,475256, ⋯ sont nommés aaaaa, aaaab, ... dans cet ordre. (Omis ci-dessous)
Main.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong(); //Exemple: 18277
StringBuilder ans = new StringBuilder();
//En convertissant le reste divisé par 26 en alphabet, la chaîne de caractères est décidée par l'arrière
while (n != 0) {
// //Pourquoi n ici--Je ne comprends pas complètement ce que je dois faire, alors j'apprécierais que quelqu'un puisse me le dire. ..
// 2020/06/22 Addendum
// n % 26 =À 1 a,... n % 26 =Je veux qu'il soit converti en z à 25,
//À ce rythme n% 26 =Puisqu'il devient b quand il vaut 1, n--Faire.
n--;
// loop1 18276
// loop2 701
// loop3 25
//Convertir des nombres en alphabets en les convertissant en caractères
ans.append((char) ('a' + n % 26));
// loop1 18276 % 26 = 24 => y
// loop2 701 % 26 = 25 => z
// loop3 25 % 26 = 25 => z
n /= 26;
// loop1 702
// loop2 26
// loop3 0 ->Fin
}
//Étant donné que les chaînes de caractères ont été créées dans l'ordre inverse, inversez();
ans = ans.reverse();
System.out.println(ans); // zzy
sc.close();
}
}
J'ai été déçu de ne pas pouvoir résoudre le problème C. Je ferai de mon mieux la prochaine fois.
Recommended Posts