[JAVA] Projekt Euler, ich steckte im achten Quartal fest

Als ich Project Euler mit Java löste, blieb es im achten Quartal hängen, also machte ich mir eine Notiz.

Q8.java



public class Q8 {
  public static void main(String[] args) {
    final String STRING = "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450";
    final int NUM =13;

    //Zum Überprüfen der Länge der Zeichenfolge
    //System.out.println(STRING.length());

    int partial_product;
    int largest_product = 1;
    int position = 1;
    String digits=null;

    for(int i=0;i<=STRING.length()-NUM;i++){
    	partial_product = 1;
    	String partial_string = STRING.substring(i,i+NUM);
    	for(int t=0;t<partial_string.length	();t++){
    		partial_product *= Integer.parseInt(partial_string.substring(t,t+1));
    	}
    	if(partial_product>largest_product){
    		largest_product=partial_product;
    		digits=partial_string;
    		position=i;
    	}
    }
    System.out.println(position);
    System.out.println(digits);
    System.out.println(largest_product);
  }
}

Wo du dir Sorgen machst

・ Der Algorithmus sollte korrekt sein, aber die Antwort ist aus irgendeinem Grund anders. -Die Ergebnisse der Bedingungsklausel der if-Anweisung zum Aktualisieren des Maximalwerts unterscheiden sich zwischen den obigen und den folgenden.

if(partial_product-largest_product>0)

~~ Ich werde es hinzufügen, wenn es gelöst ist. ~~

[Ergänzung unten] Wie Sie kommentiert haben, war die Ursache, dass der Typ int den Maximalwert des Typs überschritten hat. Ich habe es mit dem langen Typ gelöst. Vielen Dank!

Recommended Posts

[JAVA] Projekt Euler, ich steckte im achten Quartal fest
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
[Java-Anfänger] Ich habe ein etwas tieferes Verständnis von "Es ist Zeit, neue zu verwenden", also machen Sie sich eine Notiz
Ich habe den lesbaren Code gelesen, machen Sie sich also eine Notiz
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Ich steckte in einem Klon eines zweidimensionalen Arrays fest
Ich blieb in File stecken
Ich bin gestolpert, als ich versucht habe, neo4j in der jenv-Umgebung zu verwenden. Machen Sie sich also eine Notiz
Ich wollte nur eine reaktive Eigenschaft in Java erstellen
Ich habe einen RESAS-API-Client in Java erstellt
Ich habe ein PDF mit Java erstellt.
Bleiben Sie in einem Java Primer stecken
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe (1)
Ich habe den Java-Test Level 2 bestanden und werde eine Notiz hinterlassen
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe (3)
Versuchen Sie, Project Euler in Java zu lösen
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
Wo ich im heutigen "Rails Tutorial" (2020/10/08) stecken geblieben bin
Ich blieb beim Studium von Java SE 7/8 Bronze stecken
Ich habe Java gemacht, um (a == 1 && a == 2 && a == 3) immer wahr zu machen
Ich blieb beim Versuch von Volleys Synchronisationsprozess (Java) hängen.
Ein Hinweis, wenn Sie Tupel in Java möchten
Ich habe ein Programm zur Beurteilung von Primzahlen in Java geschrieben
Wo ich im heutigen "Rails Tutorial" (2020/10/05) stecken geblieben bin
Ich habe ein Janken-Spiel in Java (CLI) gemacht.
Wo ich im heutigen "Rails Tutorial" (2020/10/06) stecken geblieben bin
Java-Tipps - Erstellen Sie mit Gradle ein Spring Boot-Projekt
Wo ich im heutigen "Rails Tutorial" (2020/10/04) stecken geblieben bin
Ich habe ein Primfaktorisierungsprogramm in Java geschrieben
Wo ich im heutigen "Rails Tutorial" (2020/10/07) stecken geblieben bin
Ich habe ein einfaches Berechnungsproblemspiel in Java gemacht
Machen Sie "Ich bin kein Roboter" in Java EE (Jakarta EE)
# 2 [Anmerkung] Ich habe versucht, neunundneunzig mit Java zu berechnen.
Ich habe ein Symbol, das in Android Studio nicht aufgelöst werden kann
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
[Persönliches Memo] Erstellen Sie eine einfache, tiefe Kopie mit Java
Ein Hinweis zum Initialisieren von Feldern im Java-Lernprogramm
Was ich beim Erstellen eines Servers in Java gelernt habe
Machen Sie einen Blackjack mit Java
Erstellen wir eine Taschenrechner-App mit Java ~ Zeigen Sie das Anwendungsfenster an
[Anfänger] Ich habe ein Programm zum Verkauf von Kuchen in Java erstellt
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Hinweise zu Java GC
Ich habe ein Roulette in Java gemacht.
Refactoring: Machen Sie Blackjack in Java
Suchen Sie eine Teilmenge in Java
[Java] Mach es konstant
Machen Sie einen Diamanten mit Java
Ich habe versucht, Metaprogrammierung mit Java
Ich möchte mit link_to [Hinweis] eine Schaltfläche mit einem Zeilenumbruch erstellen.
Ich kann in IntelliJ keine Java-Klasse mit einem bestimmten Namen erstellen
So erstellen Sie ein neues Gradle + Java + Jar-Projekt in Intellij 2016.03
Ich habe eine Sterling-Sorte geschrieben, die sich wie in Java anfühlt
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪