JavaRush /Java-Blog /Random-DE /Algorithmenprobleme
Joysi
Level 41

Algorithmenprobleme

Veröffentlicht in der Gruppe Random-DE
Die Stärke von JavaRush ist die Fülle an Übungen, die wesentlich dazu beitragen, den in den Vorlesungen vermittelten Stoff zu festigen. Hier konzentrieren sich 95 % der Aufgaben auf das Üben des Schreibens von Anwendungs- oder Serverprogrammen. Es ist großartig, die in Vorlesungen vorgestellten Materialien zu üben (Sammlungen, Generika, Arrays, Multithreading usw.) oder nach und nach Probleme mit vielen Klassen und ihren Interaktionen (großen) zu erstellen und umzugestalten. Es gibt algorithmische Probleme wie ein Hauch frischer Luft (jeder erinnert sich wahrscheinlich an den letzten Bonus von Level 20, den Aufbau einer binären Baumliste), aber ihre Anzahl ist nicht groß. Das ist verständlich, der Kurs ist der angewandten Praxis gewidmet und nicht der Algorithmentechnik (die viel mehr Theorie der Kybernetik und Mathematik erfordert). Für diejenigen, denen es in gewisser Weise ähnlich geht wie mir, wenn es darum geht, sich manchmal etwas ablenken zu lassen und mehr mathematische Fähigkeiten beim Programmieren zu üben, empfehle ich http://codeforces.com/. Probleme dort können (neben anderen Programmiersprachen) in Java 7/8 gelöst werden. Ein Aufgabenpool (zusätzlich werden auch Wettbewerbe organisiert) ist unter http://codeforces.com/problemset verfügbar. Darüber hinaus gibt es Wettbewerbe usw. 100 % trifft eine Entscheidung in einer einzelnen Java-Datei unter Verwendung des Standardpakets (d. h. es ist kein Paket in der Java-Datei angegeben) und der Einstiegspunkt ist public static void main(String[] args). Andere Optionen zum Einreichen einer Lösung habe ich nicht ausprobiert. Ich werde ein Beispiel für das einfachste Problem (http://codeforces.com/problemset/problem/1/A) mit einer Lösung geben (betrachten Sie es als Testbeispiel), damit Sie es als Leerzeichen bei der Lösung anderer verwenden können : import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class task1A { /* Театральная площадь в столице Берляндии представляет собой прямоугольник n × m метров. По случаю очередного юбилея города, было принято решение о замощении площади квадратными гранитными плитами. Каждая плита имеет размер a × a. Какое наименьшее количество плит понадобится для замощения площади? Разрешено покрыть плитами большую поверхность, чем театральная площадь, но она должна быть покрыта обязательно. Гранитные плиты нельзя ломать oder дробить, а разрешено использовать только целиком. Границы плит должны быть параллельны границам площади. Входные данные В первой строке записано три целых натуральных числа n, m и a (1 ≤ n, m, a ≤ 10^9). Выходные данные Выведите искомое количество плит. */ public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] s=reader.readLine().split(" "); long n = Long.parseLong(s[0]); long m = Long.parseLong(s[1]); long a = Long.parseLong(s[2]); reader.close(); long cntSide1 = n/a + (int) Math.signum(n%a); long cntSide2 = m/a + (int) Math.signum(m%a); System.out.print(cntSide1*cntSide2); } } Nachdem Sie das Programm erstellt und selbst getestet haben, laden Sie die Datei auf die Website hoch. Die Überprüfung beginnt bald und Sie können den Vorgang beobachten. Darüber hinaus können Sie Testdaten während des Verifizierungsprozesses anzeigen und diese zur Korrektur des Programms verwenden, wenn einer der Tests fehlschlägt. PS: Wenn die Verwaltung es als Werbung für eine Ressource eines Drittanbieters betrachtet, können Sie es löschen. Wobei ich persönlich denke, dass zusätzliches Training für das Gehirn in Sachen Algorithmen nicht schaden wird. PSS Wenn es andere ähnliche Ressourcen gibt, schreiben Sie in die Kommentare (vorzugsweise in erweiterten Versionen – Vor- und Nachteile und Beispiele gelöster Testprobleme, um anderen den Einstieg zu erleichtern).
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION