en que falla este codigo java

Iniciado por JulCesa, 20 Noviembre 2011, 03:18 AM

0 Miembros y 1 Visitante están viendo este tema.

JulCesa

buenas noches comunidad
tengo un pequeño inconveniente con este codigo
el problema recibe un numero n y de retorno me debe devolver el numero de combinaciones posibles
el ejemplo que me dieron era que si metia 3 me botaba 13 combinaciones.
miren este es mi codigo, ejecuta bien me pide el numero n pero despues de eso el programa no me responde.
me puede ayudar por favor a mirar donde estoy cometiendo este error.
desde ya muchisimas gracias por su respuestas
Citarimport java.util.*;
public class Ordenaciones {
   public static void main(String args[]){
      int n=0;
      int [] i;
      System.out.println("Digite El Numero De Objetos");
      Scanner nums =new Scanner(System.in);
      n=nums.nextInt();
      i= new int[n];
      System.out.println("El Numero De Ordenaciones Son"+orden(i,n));
   }
   static int orden(int i[], int n){
      int x;
      int y = 0;
      int s;
      int k;
      int j;
      if(n<=1){
         return n;
      }
   for(j=-1;j<=n;j++){
      i[j]=0;
   }
   i[0]=1;
   x=0;
   for(k=2;k<=n;k++){
      for(j=0;j<=n-1;j++){
         if(j>1){
            y=i[j-2];
         }
         y=x;
         x=((k-j)*(i[j]+i[j-1]));
      }
      i[n-2]=y;
      i[n-1]=x;
   }
   s=0;
   for(j=0;j<=n-1;j++){
      s=s+i[j];
   }
   return s;
   }
}

lexoazul

Hola JulCesa:
En esta parte del codigo tienes un error los recorridos de los arreglos se inician desde 0 hasta N
por tanto tu estas llamando desde -1 por eso marca un error.

for(j=-1;j<=n;j++){
      i[j]=0;
   }

Espero te sirva la ayuda

JulCesa

Cita de: lexoazul en 20 Noviembre 2011, 04:30 AM
Hola JulCesa:
En esta parte del codigo tienes un error los recorridos de los arreglos se inician desde 0 hasta N
por tanto tu estas llamando desde -1 por eso marca un error.

for(j=-1;j<=n;j++){
      i[j]=0;
   }

Espero te sirva la ayuda
Hola lexoazul
acabo de hacer lo que me dijiste y me sigue saliendo el mismo error.
voy a poner informacion adicional en el post por si tu sabes de pascal me puedas ayudar por favor.
de nuevo muchas gracias

RyogiShiki

1 Usa GeSHi:


2. Si quieres inicializar el array, que es lo que creo quieres hacer la forma correcta de hacerlo es esta:

Código (java) [Seleccionar]

for (j = 0; j < i.length; j++) {
    i[j] = 0;
}


Sobre el resto, explica mejor lo que quieres hacer. que no te entiendo muy bien. Intenta limpiar el código, pon nombres descriptivas y relevantes a las variables, no uses variables de más a menos de que las necesites.