IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Exception in thread "main" java.lang.StackOverflowError


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 36
    Points : 25
    Points
    25
    Par défaut Exception in thread "main" java.lang.StackOverflowError
    Bonjour j'essaie d'executer un petit programme mais cela me renvoit Exception in thread "main" java.lang.StackOverflowError.

    pouvez vous m'aidez a trouver l'erreur ?
    faut il que je mette des tableaux dynamiques ? si oui, comment faut il faire ? en vous remerciant de votre comprehension.





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public class algo {
     
     
    	public static void main(String[] args){ 
     
    		int resul=0;
    		int [] V = {1,1,1,0,2,0,1,3};
     
     
    		resul=RechercheExhaustive (8,V,748);
    		System.out.println("le resultat est" + resul );
    	}
     
     
    	static int RechercheExhaustive (int k,int V[], int s ) {
     
     
     
    		int NbrePiece;
    		int x;
    		if (s==0) { return 0; }
    		else { if (s<0) {return  0 ;}
    				else {
    					NbrePiece = s;
    					for (int i=1; i<=k; i++) {
    						x=RechercheExhaustive (k,V,s-V[i] ) ; 
    						if ((x+1) < NbrePiece) 
    							{NbrePiece=(x+1);
    							}
    					}
    				}
    					return NbrePiece;
    				}
    			}
    	}

  2. #2
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    j'ai essayé avec des tableaux dynamiques


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    import java.util.ArrayList;
     
    public class algo {
     
     
    	public static void main(String[] args){ 
     
    		int resul=0;
    		//int [] V = {1,1,1,0,2,0,1,3};
    		  ArrayList<Integer> test = new ArrayList<Integer>(); 
    	        test.add(1); 
    	        test.add(2); 
     
     
    		resul=RechercheExhaustive (2,test,5);
    		System.out.println("le resultat est" + resul );
    	}
     
     
    	static int RechercheExhaustive (int k,ArrayList<Integer> V, int s ) {
     
     
     
    		int NbrePiece;
    		int x;
    		if (s==0) { return 0; }
    		else { if (s<0) {return  0 ;}
    				else {
    					NbrePiece = s;
    					for (int i=1; i<=k; i++) {
    						x=RechercheExhaustive (k,V,s-V.get(i) ) ; 
    						if ((x+1) < NbrePiece) 
    							{NbrePiece=(x+1);
    							}
    					}
    				}
    					return NbrePiece;
    				}
    			}
    	}



    j'obtiens comme erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
    	at java.util.ArrayList.RangeCheck(ArrayList.java:546)
    	at java.util.ArrayList.get(ArrayList.java:321)
    	at algo.RechercheExhaustive(algo.java:31)
    	at algo.RechercheExhaustive(algo.java:31)
    	at algo.RechercheExhaustive(algo.java:31)
    	at algo.main(algo.java:15)

    aidez moi

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Points : 562
    Points
    562
    Par défaut
    Bonjour,

    Dans ta fonction RechercheExhaustive, il faut changer cette ligne
    for (int i = 1; i <= k; i++)
    par celle-ci

    for (int i=0; i < k; i++)
    Les indices comencent a 0 dans certains langages java, C++ ...

    Si tu ne veux pas utiliser l'indice 0, il faut modifier ton algo.

Discussions similaires

  1. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException ?
    Par freezerhm dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 04/12/2007, 09h26
  2. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par Trint dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 27/02/2007, 11h28
  3. Réponses: 8
    Dernier message: 11/05/2006, 19h32
  4. [JDIC]Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par kedare dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 06/05/2006, 22h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo