[JAVA] Project Euler, je suis resté coincé au Q8, alors prenez note

Quand j'ai résolu le projet Euler avec java, il est resté bloqué dans Q8, alors j'ai pris une note.

Q8.java



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

    //Pour vérifier la longueur de la chaîne de caractères
    //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);
  }
}

Où vous êtes inquiet

・ L'algorithme devrait être correct, mais la réponse est différente pour une raison quelconque. -Les résultats de la clause conditionnelle de l'instruction if pour mettre à jour la valeur maximale diffèrent entre ce qui précède et ce qui suit.

if(partial_product-largest_product>0)

~~ Je l'ajouterai quand il sera résolu. ~~

[Ajout ci-dessous] Comme vous l'avez commenté, la cause était que le type int dépassait la valeur maximale du type. Je l'ai résolu en utilisant le type long. Merci beaucoup!

Recommended Posts

[JAVA] Project Euler, je suis resté coincé au Q8, alors prenez note
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
[Java débutant] J'ai une compréhension un peu plus approfondie de "Il est temps d'utiliser le nouveau", alors prenez note
J'ai lu le code lisible, alors prends note
J'ai essayé de créer une fonction de connexion avec Java
Je suis resté coincé dans un clone d'un tableau à deux dimensions
Je suis resté coincé dans le fichier
J'ai trébuché lorsque j'ai essayé d'utiliser neo4j dans l'environnement jenv, alors prenez note
Je voulais juste créer une propriété réactive en Java
J'ai créé un client RESAS-API en Java
J'ai créé un PDF avec Java.
Restez coincé dans un Java Primer
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java)
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java) (1)
J'ai réussi le test Java niveau 2, je vais donc laisser une note
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java) (3)
Essayez de résoudre Project Euler en Java
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
Où je suis resté coincé dans le "tutoriel sur les rails" d'aujourd'hui (08/10/20)
Je suis resté coincé en étudiant Java SE 7/8 Bronze
Je l'ai fait en Java pour toujours rendre (a == 1 && a == 2 && a == 3) vrai
Je suis resté coincé en essayant le processus de synchronisation de Volley (Java)
Une note quand vous voulez Tuple en Java
J'ai écrit un programme de jugement des nombres premiers en Java
Où je suis resté coincé dans le "tutoriel des rails" d'aujourd'hui (05/10/2020)
J'ai créé un jeu Janken en Java (CLI)
Où je suis resté coincé dans le "tutoriel des rails" d'aujourd'hui (06/10/20)
Conseils Java - Créez un projet Spring Boot avec Gradle
Où je suis resté coincé dans le "tutoriel sur les rails" d'aujourd'hui (04/10/20)
J'ai écrit un programme de factorisation prime en Java
Où je suis resté coincé dans le "tutoriel sur les rails" d'aujourd'hui (07/10/20)
J'ai fait un jeu de problèmes de calcul simple en Java
Créez "Je ne suis pas un robot" en Java EE (Jakarta EE)
# 2 [Note] J'ai essayé de calculer quatre-vingt-dix-neuf avec Java.
J'ai un symbole de résolution impossible dans Android Studio
J'ai essayé de créer une compétence Clova en Java
[Mémo personnel] Créez une copie complète simple avec Java
Remarque sur l'initialisation des champs dans le didacticiel Java
Ce que j'ai appris lors de la création d'un serveur en Java
Faites un blackjack avec Java
Faisons une application de calcul avec Java ~ Afficher la fenêtre de l'application
[Débutant] J'ai créé un programme pour vendre des gâteaux en Java
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
Remarques sur Java GC
J'ai fait une roulette à Java.
Refactoring: faire du Blackjack en Java
Rechercher un sous-ensemble en Java
[Java] Rendez-le constant
Faire un diamant en utilisant Java
J'ai essayé la métaprogrammation avec Java
Je veux créer un bouton avec un saut de ligne avec link_to [Note]
Je ne peux pas créer une classe Java avec un nom spécifique dans IntelliJ
Comment créer un nouveau projet Gradle + Java + Jar dans Intellij 2016.03
J'ai écrit une sorte de livre qui ressemble à Java
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪