TL;DR Sie können es einfach in ein Alphabet konvertieren, indem Sie die Zahl in char umwandeln.
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++) {
//Sie können auch so schreiben**
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
Zitiert aus ABC171C
Roger beschloss, alle 100000000000000001 Hunde zu behalten, die ihm plötzlich erschienen. Die Hunde waren ursprünglich von 1 bis 1000000000000001 nummeriert, aber Roger gab ihnen Namen nach den folgenden Regeln: Hunde mit den Nummern 1,2, ⋯, 26 werden in dieser Reihenfolge mit a, b, ..., z bezeichnet. Hunde mit den Nummern 27,28,29, ⋯, 701, 702 heißen in dieser Reihenfolge aa, ab, ac, ..., zy, zz. Hunde mit den Nummern 703.704.705, ⋯, 18277.18278 heißen in dieser Reihenfolge aaa, aab, aac, ..., zzy, zzz. Hunde mit den Nummern 18279,18280,18281, ⋯, 475253,475254 heißen in dieser Reihenfolge aaaa, aaab, aaac, ..., zzzy, zzzz. Die Hunde mit der Nummer 475255,475256, ⋯ heißen in dieser Reihenfolge aaaaa, aaaab, .... (Unten weggelassen)
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(); //Beispiel: 18277
StringBuilder ans = new StringBuilder();
//Durch Konvertieren des durch 26 geteilten Restes in ein Alphabet wird die Zeichenfolge von hinten festgelegt
while (n != 0) {
// //Warum n hier--Ich verstehe nicht ganz, was ich tun muss, daher würde ich es begrüßen, wenn mir jemand dies freundlicherweise mitteilen könnte. ..
// 2020/06/22 Nachtrag
// n % 26 =Bei 1 a,... n % 26 =Ich möchte, dass es bei 25 in z konvertiert wird.
//Bei dieser Rate n% 26 =Da es b wird, wenn es 1 ist, n--Machen.
n--;
// loop1 18276
// loop2 701
// loop3 25
//Konvertieren Sie Zahlen in Alphabete, indem Sie sie in Zeichen umwandeln
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 ->Ende
}
//Da die Zeichenketten in umgekehrter Reihenfolge erstellt wurden, kehren Sie sie um();
ans = ans.reverse();
System.out.println(ans); // zzy
sc.close();
}
}
Ich war enttäuscht, dass ich das C-Problem nicht lösen konnte. Ich werde das nächste Mal mein Bestes geben.
Recommended Posts